Formats audio supportés
Formats audio acceptés par l’API et spécifications recommandées.
Formats supportés
| Format | Extension | Compression | Qualité | Recommandé |
|---|---|---|---|---|
| PCM 16-bit | .pcm | Aucune | Excellente | ✅ Oui |
| WAV | .wav | Aucune | Excellente | ✅ Oui |
| FLAC | .flac | Lossless | Excellente | ✅ Oui |
| MP3 | .mp3 | Lossy | Bonne | ⚠️ Acceptable |
| M4A/AAC | .m4a | Lossy | Bonne | ⚠️ Acceptable |
| OGG | .ogg | Lossy | Moyenne | ❌ Non recommandé |
Spécifications audio
Recommandé
- Sample rate : 16000 Hz (optimal)
- Bit depth : 16-bit minimum
- Channels : 1 (mono)
- Encoding : PCM little-endian
Supporté
- Sample rates : 8000, 16000, 22050, 44100, 48000 Hz
- Channels : 1 (mono) ou 2 (stéréo, converti en mono)
- Bit depth : 16-bit ou 32-bit float
Limitations par plan
| Plan | Taille max fichier | Durée max session | Durée max fichier |
|---|---|---|---|
| Free | 25 MB | 30 min | 10 min |
| Starter | 100 MB | 2h | 1h |
| Professional | 500 MB | 8h | 4h |
| Enterprise | Illimité | Illimité | Illimité |
Recommandations de qualité audio
- Sample rate optimal : 16000 Hz (minimum 8000 Hz)
- Bit depth : 16-bit minimum
- Channels : Mono (stéréo converti automatiquement)
- Débit : 16-32 kbps minimum
- Format : PCM ou WAV non compressé pour meilleure qualité
Conversion audio
FFmpeg (tous formats)
# Conversion vers PCM 16-bit, 16kHz, mono
ffmpeg -i input.mp3 -ar 16000 -ac 1 -f s16le output.pcmSoX (Linux/Mac)
# Conversion vers WAV 16kHz, mono
sox input.mp3 -r 16000 -c 1 output.wavPython (pydub)
from pydub import AudioSegment
audio = AudioSegment.from_file("input.mp3")
audio = audio.set_frame_rate(16000)
audio = audio.set_channels(1)
audio.export("output.wav", format="wav")JavaScript (Web Audio API)
// Conversion depuis getUserMedia
const audioContext = new AudioContext({ sampleRate: 16000 });
const source = audioContext.createMediaStreamSource(stream);
const processor = audioContext.createScriptProcessor(4096, 1, 1);
processor.onaudioprocess = (e) => {
const inputData = e.inputBuffer.getChannelData(0);
// Convertir Float32Array en Int16Array (PCM 16-bit)
const int16Data = new Int16Array(inputData.length);
for (let i = 0; i < inputData.length; i++) {
int16Data[i] = Math.max(-32768, Math.min(32767, inputData[i] * 32768));
}
// Envoyer int16Data.buffer via WebSocket
};Bonnes pratiques
- ✅ Utiliser PCM 16-bit, 16kHz, mono pour la meilleure qualité
- ✅ Éviter la compression si possible (WAV, FLAC)
- ✅ Tester la qualité audio avant l’envoi
- ✅ Vérifier le niveau audio (pas trop faible, pas de saturation)
- ✅ Réduire le bruit de fond si possible