Je suis en train d'enregistrer dans un fichier les données audio écouté par le service de reconnaissance vocale d'android.
En fait je mettre en oeuvre RecognitionListener
comme expliqué ici:
Parole-Texte sur Android
enregistrer les données dans une mémoire tampon, comme illustré ici: La capture de l'audio envoyé à la reconnaissance vocale de Google serveur
et d'écrire le contenu du buffer dans un fichier Wav, comme ici. Android Enregistrement raw octets dans un fichier WAVE pour le Streaming Http
Mon problème est de savoir comment obtenir les paramètres audio à enregistrer dans le fichier wav les en-têtes. En fait, quand je joue le fichier wav que vous n'entendrez un bruit bizarre, avec ces paramètres,
short nChannels=2;// audio channels
int sRate=44100; // Sample rate
short bSamples = 16;// byteSample
ou rien avec ce:
short nChannels=1;// audio channels
int sRate=8000; // Sample rate
short bSamples = 16;// byteSample
Ce qui est déroutant, c'est que le fait de regarder les paramètres de la reconnaissance vocale tâche de logcat je trouve la première LECTURE fréquence d'échantillonnage de 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
et puis aInfo.Taux d'échantillonnage = 8000 , où il joue le fichier à envoyer au serveur de 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
Alors, comment puis-je trouver les paramètres pour enregistrer l'audio de la mémoire tampon dans une bonne wav fichier audio?