- Navios
- 29 de setembro de 2026 às 02:32 UTC
- Autor
- Kamo
- Enviar
- 16db29f
O adaptador hard-coded output format=mp3 44100 128 em cada chamada, então um chamador pedindo E5 para wav (ou kamoai-voz pedindo pcm, em cada telefonema) ainda tem mp3 de volta — um decodificador extra perdido mais uma amostra no caminho de chamada, e um Violação de contrato silencioso para qualquer outro chamador de /api/ai/v1/audio/speech. sintet() agora mapeia a resposta format do AudioController para o próprio OnzeLabs output format: pcm/wav ambos obtêm pcm 24000 (convenção PCM do próprio AIService, correspondência kamoai-voice decodificado 24 kHz) com wav envolto em um real RIFF/WAVE cabeçalho aqui (ElevenLabs nunca envia um), mp3 mantém mp3 44100 128, opus maps to opus 48000 128, e um ulaw explícito maps to ulaw 8000. Um formato OnzeLabs não pode falar (aac, flac) é recusado na frente para que o roteador cai de volta a um modelo que pode, em vez de, silenciosamente, mapeá-lo para mp3. A declarado mimeType agora sempre corresponde aos bytes retornados, não qualquer coisa Digite o conteúdo que o fornecedor enviou. kamoai-voice já pede pcm e lê o tipo de conteúdo declarado do AIService em vez de confiar em seu próprio pedido, então nenhuma mudança foi necessária lá: PCM real, de taxa de correspondência agora em vez de um mp3 decodificado-e-reamostrado. Testes (SpeechVendorFamiliesTest, vermelho e verde contra um falso OnzeLabs servidor): cada resposta format mapeia para o output format direito, o wav wrapper é um cabeçalho RIFF/WAVE válido de 44-bytes em torno dos bytes PCM intocados, um formato não suportado é rejeitado antes de qualquer chamada HTTP, e mp3 é inalterado.
