Próbuję zapisać w pliku dane audio słuchane przez usługę rozpoznawania mowy Androida.Zapisywanie danych wejściowych dźwięku z Androida Zdjęcie rozpoznawania mowy silnika
Właściwie zaimplementować RecognitionListener
jak wyjaśniono tutaj: Speech to Text on Android
zapisać dane w buforze, jak pokazano tutaj: Capturing audio sent to Google's speech recognition server
i zapis bufora do pliku wav, jak tutaj. Android Record raw bytes into WAVE file for Http Streaming
Mój problem polega na tym, jak uzyskać odpowiednie ustawienia audio do zapisania w nagłówkach pliku wav. W rzeczywistości, kiedy odtworzyć plik wav tylko słychać dziwny dźwięk, z tym parametrów
short nChannels=2;// audio channels
int sRate=44100; // Sample rate
short bSamples = 16;// byteSample
albo nic z tego:
short nChannels=1;// audio channels
int sRate=8000; // Sample rate
short bSamples = 16;// byteSample
Co jest mylące jest to, że patrząc na parametry zadania rozpoznawania mowy z LogCat znajdę pierwszy zestaw ODTWARZANIA częstotliwość próbkowania do 44100 Hz:
12-20 14:41:34.007: DEBUG/AudioHardwareALSA(2364): Set PLAYBACK PCM format to S16_LE (Signed 16 bit Little Endian)
12-20 14:41:34.007: DEBUG/AudioHardwareALSA(2364): Using 2 channels for PLAYBACK.
12-20 14:41:34.007: DEBUG/AudioHardwareALSA(2364): Set PLAYBACK sample rate to 44100 HZ
12-20 14:41:34.007: DEBUG/AudioHardwareALSA(2364): Buffer size: 2048
12-20 14:41:34.007: DEBUG/AudioHardwareALSA(2364): Latency: 46439
a następnie aInfo.SampleRate = 8000 gdy odtwarza plik do wysłania do serwera Google:
12-20 14:41:36.152: DEBUG/(2364): PV_Wav_Parser::InitWavParser
12-20 14:41:36.152: DEBUG/(2364): File open Succes
12-20 14:41:36.152: DEBUG/(2364): File SEEK End Succes
...
12-20 14:41:36.152: DEBUG/(2364): PV_Wav_Parser::ReadData
12-20 14:41:36.152: DEBUG/(2364): Data Read buff = RIFF?
12-20 14:41:36.152: DEBUG/(2364): Data Read = RIFF?
12-20 14:41:36.152: DEBUG/(2364): PV_Wav_Parser::ReadData
12-20 14:41:36.152: DEBUG/(2364): Data Read buff = fmt
...
12-20 14:41:36.152: DEBUG/(2364): PVWAVPARSER_OK
12-20 14:41:36.156: DEBUG/(2364): aInfo.AudioFormat = 1
12-20 14:41:36.156: DEBUG/(2364): aInfo.NumChannels = 1
12-20 14:41:36.156: DEBUG/(2364): aInfo.SampleRate = 8000
12-20 14:41:36.156: DEBUG/(2364): aInfo.ByteRate = 16000
12-20 14:41:36.156: DEBUG/(2364): aInfo.BlockAlign = 2
12-20 14:41:36.156: DEBUG/(2364): aInfo.BitsPerSample = 16
12-20 14:41:36.156: DEBUG/(2364): aInfo.BytesPerSample = 2
12-20 14:41:36.156: DEBUG/(2364): aInfo.NumSamples = 2258
Tak, jak mogę znaleźć odpowiednie parametry, aby zapisać bufor dźwięku w dobrym pliku audio wav?
Czy kiedykolwiek znalazłeś rozwiązanie? – Doug
Wygląda na to, że dotarłeś najdalej, robiąc to. mmmx, czy byłeś w stanie rozwiązać ten problem? – ComputerEngineer88