Diferencia entre revisiones de «Omnisuite STT y TTS»
De VIVAitwiki
Ir a la navegaciónIr a la búsqueda| (No se muestran 29 ediciones intermedias del mismo usuario) | |||
| Línea 1: | Línea 1: | ||
| − | |||
== Introducción == | == Introducción == | ||
Se han desarrollado conectores propios para | Se han desarrollado conectores propios para | ||
| Línea 8: | Línea 7: | ||
:* Evelenlabs | :* Evelenlabs | ||
:* Google | :* Google | ||
| − | + | <br> | |
| − | La configuración | + | <div style="background-color: #f0fff4; border: 3px solid #c6f6d5; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 0px"> |
| − | + | '''La configuración adecuada por agilidad y costes es usar STT de ElevenLabs y TTS de Google''' | |
| + | </div> | ||
| + | <br> | ||
== ElevenLabs == | == ElevenLabs == | ||
Se dispone de los programas | Se dispone de los programas | ||
| Línea 23: | Línea 24: | ||
:* fichero a convertir a texto | :* fichero a convertir a texto | ||
Ejemplo STT | Ejemplo STT | ||
| − | :<code>/opt/omnisuite/bin/omnisuiteSTT11p /etc/MDtel/elevenlabs.ini stt scribe_v2 es /var/lib/asterisk/sounds/{id_llamada}_stt.wav | + | : Invocación |
| − | + | ::<code>/opt/omnisuite/bin/omnisuiteSTT11p /etc/MDtel/elevenlabs.ini stt scribe_v2 es /var/lib/asterisk/sounds/{id_llamada}_stt.wav </code> | |
| − | + | : Respuesta | |
| + | <pre style="background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;"> | ||
| + | { | ||
| + | "errorNum": 0, | ||
| + | "errorCad": "OK", | ||
| + | "text": "¿En qué más puedo ayudarte?", | ||
| + | "language": "es", | ||
| + | "elevenlabs_language": "spa", | ||
| + | "confidence": 100 | ||
| + | } | ||
| + | |||
| + | </pre> | ||
<br> | <br> | ||
En la invocación para '''Text to Speech''' incluiremos | En la invocación para '''Text to Speech''' incluiremos | ||
| Línea 36: | Línea 48: | ||
:* Texto a convertir | :* Texto a convertir | ||
Ejemplo TTS | Ejemplo TTS | ||
| − | :<code> /opt/omnisuite/bin/omnisuiteTTS11p /etc/MDtel/elevenlabs.ini tts es eleven_turbo_v2_5 1eHrpOW5l98cxiSRjbzJ /var/lib/asterisk/sounds/{id_llamada}_tts.alaw "{vflow_respuesta}" </code> | + | : Invocación |
| + | ::<code> /opt/omnisuite/bin/omnisuiteTTS11p /etc/MDtel/elevenlabs.ini tts es eleven_turbo_v2_5 1eHrpOW5l98cxiSRjbzJ /var/lib/asterisk/sounds/{id_llamada}_tts.alaw "{vflow_respuesta}" </code> | ||
<br> | <br> | ||
| + | :Respuesta | ||
| + | <pre style="background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;"> | ||
| + | { | ||
| + | "errorNum": 0, | ||
| + | "errorCad": "OK" | ||
| + | } | ||
| + | </pre> | ||
<br> | <br> | ||
El fichero ".ini" (por defecto <code>/etc/MDtel/elevenlabs.ini</code>) contiene: | El fichero ".ini" (por defecto <code>/etc/MDtel/elevenlabs.ini</code>) contiene: | ||
| Línea 74: | Línea 94: | ||
== Google == | == Google == | ||
| − | == Integración en Omnisuite == | + | == Integración en Omnisuite (SIN INTERRUPCIÓN A AGENTE) == |
En Omnisuite la invocación a un ASR o TTS del catálogo integrado requiere la inserción de una sola caja en Cally Square, por ejemplo "Google Cloud TTS" o "OpenAI Whisper" | En Omnisuite la invocación a un ASR o TTS del catálogo integrado requiere la inserción de una sola caja en Cally Square, por ejemplo "Google Cloud TTS" o "OpenAI Whisper" | ||
<br> | <br> | ||
| − | Utilizando la implementación realizada por mdtel, se requerirá de dos cajas: | + | Utilizando la implementación realizada por mdtel, se requerirá al menos de dos cajas: |
<br> | <br> | ||
* Para STT: | * Para STT: | ||
| + | ::* (Opcional) una caja "system" que reproduzca un pitido | ||
::* Una caja "system" que grabe el audio del usuario | ::* Una caja "system" que grabe el audio del usuario | ||
::* Una caja "system" que invoque al STT con dicho audio grabado | ::* Una caja "system" que invoque al STT con dicho audio grabado | ||
<br> | <br> | ||
| − | + | :::[[Archivo:Captura de pantalla 2026-05-14 134424.png|250px|miniaturadeimagen|no|Speech To Text con "cajas mdtel"]] | |
| + | <br> | ||
| + | :::[[Archivo:Captura de pantalla 2026-05-14 134721.png|250px|miniaturadeimagen|no|Reproducción de "beep"]] | ||
| + | <br> | ||
| + | :::[[Archivo:Captura de pantalla 2026-05-14 134822.png|300px|miniaturadeimagen|no|Grabación de audio a transcribir]] | ||
| + | <br> | ||
| + | :::[[Archivo:Captura de pantalla 2026-05-14 134933.png|500px|miniaturadeimagen|no|Invocación a transcripción]] | ||
<br> | <br> | ||
* Para TTS: | * Para TTS: | ||
| Línea 89: | Línea 116: | ||
::* Una caja "system" que reproduce el audio | ::* Una caja "system" que reproduce el audio | ||
<br> | <br> | ||
| − | + | :::[[Archivo:Captura de pantalla 2026-05-14 141728.png|300px|miniaturadeimagen|no|Texto to speech con "cajas mdtel"]] | |
| + | <BR> | ||
| + | '''PENDIENTE SUBIR DETALLES CUANDO TENGAMOS TTS CON GOOGLE EN C''' | ||
| + | <br> | ||
<div style="background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px"> | <div style="background-color: #fef6e7; border: 1px solid #fbd68a; padding: 1em; border-radius: 4px;width: fit-content; margin-left: 50px"> | ||
'''⚠️ ATENCION !!''' | '''⚠️ ATENCION !!''' | ||
<br> | <br> | ||
| − | + | :::'''Este proceso genera un fichero temporal de audio para STT y otro para TTS que deberán ser borrados''' | |
| − | '''Este proceso genera un fichero temporal de audio para STT y otro para TTS que deberán ser borrados | ||
| − | |||
| − | |||
| − | |||
</div> | </div> | ||
<br> | <br> | ||
| − | + | :::[[Archivo:Captura de pantalla 2026-05-14 135949.png|500px|miniaturadeimagen|no|Ejemplo para borrar archivo temporal TTS]] | |
| − | |||
| − | ::[[Archivo: | ||
<br> | <br> | ||
Revisión actual del 14:31 14 may 2026
1 Introducción
Se han desarrollado conectores propios para
- Speech To Text (STT)
- Text To Speech (TTS)
Para los proveedores
- Evelenlabs
La configuración adecuada por agilidad y costes es usar STT de ElevenLabs y TTS de Google
2 ElevenLabs
Se dispone de los programas
/opt/omnisuite/bin/omnisuiteSTT11ppara Speech to Text (STT)/opt/omnisuite/bin/omnisuiteTTS11ppara Text To Speech (TTS)
En la invocación para Speech to Text incluiremos
- Fichero ".ini"
stt--> comando para speech a text- Modelo a usar
- idioma a usar
- fichero a convertir a texto
Ejemplo STT
- Invocación
/opt/omnisuite/bin/omnisuiteSTT11p /etc/MDtel/elevenlabs.ini stt scribe_v2 es /var/lib/asterisk/sounds/{id_llamada}_stt.wav
- Respuesta
{
"errorNum": 0,
"errorCad": "OK",
"text": "¿En qué más puedo ayudarte?",
"language": "es",
"elevenlabs_language": "spa",
"confidence": 100
}
En la invocación para Text to Speech incluiremos
- Fichero ".ini"
tst--> comando para speech a text- idioma a usar
- Modelo a usar
- Voz a usar
- Fichero donde quedará el audio obtenido
- Texto a convertir
Ejemplo TTS
- Invocación
/opt/omnisuite/bin/omnisuiteTTS11p /etc/MDtel/elevenlabs.ini tts es eleven_turbo_v2_5 1eHrpOW5l98cxiSRjbzJ /var/lib/asterisk/sounds/{id_llamada}_tts.alaw "{vflow_respuesta}"
- Respuesta
{
"errorNum": 0,
"errorCad": "OK"
}
El fichero ".ini" (por defecto /etc/MDtel/elevenlabs.ini) contiene:
- Una sección
comunen la que habrá que cambiar elapi_key - Una sección
stt, para "speech to text" en la que se configurarán los keyterms del proyecto - Una sección
tts, para "text to speech"
- Una sección
[comun] proxy=no api_key=APIKEYDELPROYECTO [stt] # enable_logging=false solo enterprise url=https://api.elevenlabs.io/v1/speech-to-text?enable_logging=true to_ms=10000 # temperature=0.0 a 2.0 temperature=0.1 # keyterms_XX: pueden estar todos vacios o no existir. 00<=XX<=09 keyterms_00= keyterms_01= keyterms_02= keyterms_03= keyterms_04= keyterms_05= keyterms_06= keyterms_07= keyterms_08= keyterms_09= [tts] url=https://api.elevenlabs.io/v1/text-to-speech/%s?output_format=%s_8000 to_ms=10000
3 Google
4 Integración en Omnisuite (SIN INTERRUPCIÓN A AGENTE)
En Omnisuite la invocación a un ASR o TTS del catálogo integrado requiere la inserción de una sola caja en Cally Square, por ejemplo "Google Cloud TTS" o "OpenAI Whisper"
Utilizando la implementación realizada por mdtel, se requerirá al menos de dos cajas:
- Para STT:
- (Opcional) una caja "system" que reproduzca un pitido
- Una caja "system" que grabe el audio del usuario
- Una caja "system" que invoque al STT con dicho audio grabado
- Para TTS:
- Una caja "system" que invoca al TTS y deja el audio generado en un fichero
- Una caja "system" que reproduce el audio
PENDIENTE SUBIR DETALLES CUANDO TENGAMOS TTS CON GOOGLE EN C
⚠️ ATENCION !!
- Este proceso genera un fichero temporal de audio para STT y otro para TTS que deberán ser borrados
