Configuración de voz
Configuración de las funciones de voz a texto (STT) y texto a voz (TTS)
Introducción a la voz
La configuración de voz (Speech Configuration) incluye ajustes tanto para la conversión de voz a texto (STT) como de texto a voz (TTS) bajo una sección unificada speech:. Además, hay un nuevo menú speechTab para los ajustes específicos del usuario.
Véase también: Para obtener el esquema de configuración YAML detallado y todas las opciones disponibles, consulte la documentación de Speech Object Structure.
Variables de entorno
Al utilizar servicios de STT/TTS basados en la nube, necesitará configurar las claves de API en su archivo .env:
# Speech-to-Text API key (e.g., OpenAI Whisper)
STT_API_KEY=your-stt-api-key
# Text-to-Speech API key (e.g., OpenAI TTS, ElevenLabs)
TTS_API_KEY=your-tts-api-keyEstas claves se referencian entonces en su configuración de librechat.yaml utilizando ${STT_API_KEY} y ${TTS_API_KEY}.
Pestaña de voz (opcional)
El menú speechTab ofrece opciones personalizables para los modos de conversación y avanzado, así como ajustes detallados para STT y TTS. Esto establecerá la configuración predeterminada para los usuarios.
ejemplo:
speech:
speechTab:
conversationMode: true
advancedMode: false
speechToText:
engineSTT: "external"
languageSTT: "English (US)"
autoTranscribeAudio: true
decibelValue: -45
autoSendText: 0
textToSpeech:
engineTTS: "external"
voice: "alloy"
languageTTS: "en"
automaticPlayback: true
playbackRate: 1.0
cacheTTS: trueSTT (Speech-to-Text)
La función de Speech-to-Text (STT) convierte las palabras habladas en texto escrito. Para habilitar STT, haga clic en el botón STT (cerca del botón de enviar) o utilice la combinación de teclas ++Ctrl+Alt+L++ para iniciar la transcripción.
Servicios de STT disponibles
- STT local
- Basado en navegador
- Whisper (probado en LocalAI)
- Cloud STT
- OpenAI Whisper
- Azure Whisper
- Otros servicios STT compatibles con OpenAI
Configuración de STT local
-
Browser-based
No se requiere configuración. Asegúrese de que el interruptor "Speech To Text" en la pestaña de configuración de voz esté activado y que "Browser" esté seleccionado en el menú desplegable del motor.
-
Whisper Local
Requiere una instancia local de Whisper.
speech:
stt:
openai:
url: 'http://host.docker.internal:8080/v1/audio/transcriptions'
model: 'whisper'Configuración de Cloud STT
speech:
stt:
openai:
apiKey: '${STT_API_KEY}'
model: 'whisper-1'speech:
stt:
azureOpenAI:
instanceName: 'instanceName'
apiKey: '${STT_API_KEY}'
deploymentName: 'deploymentName'
apiVersion: 'apiVersion'Soporte para dominio de endpoint de Azure
El campo instanceName admite ambos formatos de dominio de Azure OpenAI:
- Nuevo formato:
.cognitiveservices.azure.com(p. ej.,my-instance.cognitiveservices.azure.com) - Formato heredado:
.openai.azure.com(p. ej.,my-instance.openai.azure.com)
Puede especificar el dominio completo o solo el nombre de la instancia. Si proporciona un dominio completo que incluya .azure.com, se utilizará tal cual. De lo contrario, se aplicará el formato heredado .openai.azure.com para la compatibilidad con versiones anteriores.
Consulte la sección de OpenAI Whisper, ajustando la url y el model según sea necesario.
ejemplo
speech:
stt:
openai:
url: 'http://host.docker.internal:8080/v1/audio/transcriptions'
model: 'whisper'TTS (Texto a voz)
La función de Text-to-Speech (TTS) convierte texto escrito en palabras habladas. Hay varios servicios de TTS disponibles:
Servicios de TTS disponibles
- TTS Local
- Basado en navegador
- Piper (probado en LocalAI)
- Coqui (probado en LocalAI)
- Cloud TTS
- OpenAI TTS
- Azure OpenAI
- ElevenLabs
- Otros servicios de TTS compatibles con OpenAI/ElevenLabs
Configuración de TTS local
No se requiere configuración. Asegúrese de que el interruptor "Text To Speech" en la pestaña de configuración de voz esté activado y que "Browser" esté seleccionado en el menú desplegable del motor.
Requiere una instancia local de Piper.
speech:
tts:
localai:
url: "http://host.docker.internal:8080/tts"
apiKey: "EMPTY"
voices: [
"en-us-amy-low.onnx",
"en-us-danny-low.onnx",
"en-us-libritts-high.onnx",
"en-us-ryan-high.onnx",
]
backend: "piper"Requiere una instancia local de Coqui.
speech:
tts:
localai:
url: 'http://localhost:8080/v1/audio/synthesize'
voices: ['tts_models/en/ljspeech/glow-tts', 'tts_models/en/ljspeech/tacotron2', 'tts_models/en/ljspeech/waveglow']
backend: 'coqui'Configuración de Cloud TTS
speech:
tts:
openai:
apiKey: '${TTS_API_KEY}'
model: 'tts-1'
voices: ['alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer']speech:
tts:
azureOpenAI:
instanceName: ''
apiKey: '${TTS_API_KEY}'
deploymentName: ''
apiVersion: ''
model: 'tts-1'
voices: ['alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer']Soporte para dominio de endpoint de Azure
El campo instanceName admite ambos formatos de dominio de Azure OpenAI:
- Nuevo formato:
.cognitiveservices.azure.com(p. ej.,my-instance.cognitiveservices.azure.com) - Formato heredado:
.openai.azure.com(p. ej.,my-instance.openai.azure.com)
Puede especificar el dominio completo o solo el nombre de la instancia. Si proporciona un dominio completo que incluya .azure.com, se utilizará tal cual. De lo contrario, se aplicará el formato heredado .openai.azure.com para la compatibilidad con versiones anteriores.
speech:
tts:
elevenlabs:
apiKey: '${TTS_API_KEY}'
model: 'eleven_multilingual_v2'
voices: ['202898wioas09d2', 'addwqr324tesfsf', '3asdasr3qrq44w', 'adsadsa']Se pueden añadir parámetros adicionales específicos de ElevenLabs de la siguiente manera:
voice_settings:
similarity_boost: '' # number
stability: '' # number
style: '' # number
use_speaker_boost: # boolean
pronunciation_dictionary_locators: [''] # list of strings (array)Consulte la sección OpenAI TTS, ajustando la variable url según sea necesario
ejemplo:
speech:
tts:
openai:
url: 'http://host.docker.internal:8080/v1/audio/synthesize'
apiKey: '${TTS_API_KEY}'
model: 'tts-1'
voices: ['alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer']Consulte la sección de ElevenLabs, ajustando la variable url según sea necesario
ejemplo:
speech:
tts:
elevenlabs:
url: 'http://host.docker.internal:8080/v1/audio/synthesize'
apiKey: '${TTS_API_KEY}'
model: 'eleven_multilingual_v2'
voices: ['202898wioas09d2', 'addwqr324tesfsf', '3asdasr3qrq44w', 'adsadsa']¿Qué te parece esta guía?