Je viens de créer un blob:
const audioBlob = new Blob(audioChunks, { 'type' : 'audio/wav; codecs=0' });
et envoyé au backend au format base64. J'ai enregistré ceci dans un fichier nommé "test.wav" en utilisant le code suivant:
await writeFile('./temp/test.wav', Buffer.from(filename.replace('data:audio/wav; codecs=0;base64,', ''), 'base64'), 'base64');
Sur le fichier de sortie "test.wav", je reçois le codec en tant qu'opus, bitrate = N/A et fréquence d'échantillonnage = 48000. Je veux changer ces valeurs en codec = wav, bitrate = 256kbps et fréquence d'échantillonnage = 16000. Comment y parvenir en noeud (ou angulaire)?
Ici est un lien pour mon code frontal.
Cette ligne fournit uniquement des informations sur le mime mais n'affecte pas la sortie réelle
const audioBlob = new Blob(audioChunks, { 'type' : 'audio/wav; codecs=0' });
Pour sélectionner le codec audio et le débit appropriés, démarrez l'enregistrement avec les options suivantes
var options = {
audioBitsPerSecond : 128000,
mimeType : 'audio/ogg'
}
var mediaRecorder = new MediaRecorder(stream, options);
Autant que je sache, le codec ogg est supporté par défaut dans WebRTC, il est donc compatible avec tous les navigateurs
Plus tard, côté backend, vous devrez transformer le flux audio ogg
en tout ce que vous voulez, en utilisant par exemple fluent-ffmpeg