Tôi đang cố gắng lưu vào một tệp dữ liệu âm thanh được nghe bởi dịch vụ nhận dạng giọng nói của Android.Lưu đầu vào âm thanh của công cụ nhận dạng giọng nói Android Stock
Thật sự tôi thực hiện RecognitionListener
như đã giải thích ở đây: Speech to Text on Android
tiết kiệm dữ liệu vào một bộ đệm như minh họa ở đây: Capturing audio sent to Google's speech recognition server
và ghi các bộ đệm vào một tập tin Wav, như ở đây. Android Record raw bytes into WAVE file for Http Streaming
Vấn đề của tôi là cách cài đặt âm thanh phù hợp để lưu vào tiêu đề của tệp wav. Trong thực tế khi tôi chơi file wav chỉ nghe tiếng động lạ, với các thông số này,
short nChannels=2;// audio channels
int sRate=44100; // Sample rate
short bSamples = 16;// byteSample
hoặc không có gì với điều này:
short nChannels=1;// audio channels
int sRate=8000; // Sample rate
short bSamples = 16;// byteSample
gì là khó hiểu là nhìn vào các thông số của nhiệm vụ nhận dạng giọng nói từ logcat tôi thấy Set sample rate PLAYBACK đầu tiên 44.100 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
và sau đó aInfo.SampleRate = 8000 khi nó đóng file để gửi cho google server:
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
Vì vậy, làm thế nào tôi có thể tìm hiểu các thông số đúng để lưu đệm âm thanh trong một wav tập tin âm thanh tốt?
Bạn đã bao giờ tìm thấy giải pháp của mình chưa? – Doug
có vẻ như bạn đã nhận được những điều xa nhất về việc này. mmmx, bạn có thể giải quyết vấn đề này không? – ComputerEngineer88