Сохранение аудиовхода движка распознавания речи Android Stock

Я пытаюсь сохранить в файле аудиоданные, прослушанные службой распознавания речи Android.

На самом деле я реализую RecognitionListener , как описано здесь: Преобразование речи в текст на Android

сохраняет данные в буфер, как показано здесь: Захват звука, отправленного на сервер распознавания речи Google

, и запись буфера в файл Wav, как здесь. Android Записывает необработанные байты в WAVE-файл для Http Streaming

Моя проблема в том, как получить соответствующие настройки звука для сохранения в заголовках WAV-файла. Фактически, когда я проигрываю wav-файл, я слышу только странный шум с этими параметрами,

short nChannels=2;// audio channels
int sRate=44100;    // Sample rate
short bSamples = 16;// byteSample

или ничего с этим:

short nChannels=1;// audio channels
int sRate=8000;    // Sample rate
short bSamples = 16;// byteSample

Что сбивает с толку, так это то, что, глядя на параметры задачи распознавания речи из logcat, я сначала обнаружил Set ВОСПРОИЗВЕДЕНИЕ с частотой дискретизации 44100 Гц :

    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

, а затем aInfo.SampleRate = 8000 , когда он воспроизводит файл для отправки на сервер 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

Итак, как мне узнать правильные параметры сохранить аудиобуфер в хорошем аудиофайле wav?

38
задан Community 23 May 2017 в 12:32
поделиться