Uso
Inicio Rápido
Aquí hay un ejemplo básico de uso:
from RealtimeTTS import TextToAudioStream, SystemEngine, AzureEngine, ElevenlabsEngine
engine = SystemEngine() # replace with your TTS engine
stream = TextToAudioStream(engine)
stream.feed("Hello world! How are you today?")
stream.play_async()
Alimentar Texto
Puede alimentar cadenas individuales:
stream.feed("Hello, this is a sentence.")
O puede alimentar generadores e iteradores de caracteres para la transmisión en tiempo real:
def write(prompt: str):
for chunk in openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content" : prompt}],
stream=True
):
if (text_chunk := chunk["choices"][0]["delta"].get("content")) is not None:
yield text_chunk
text_stream = write("A three-sentence relaxing speech.")
stream.feed(text_stream)
char_iterator = iter("Streaming this character by character.")
stream.feed(char_iterator)
Reproducción
De forma asíncrona:
stream.play_async()
while stream.is_playing():
time.sleep(0.1)
De forma síncrona:
stream.play()
Prueba de la Biblioteca
El subdirectorio de pruebas contiene un conjunto de scripts para ayudarte a evaluar y comprender las capacidades de la biblioteca RealtimeTTS.
Ten en cuenta que la mayoría de las pruebas aún dependen de la API "antigua" de OpenAI (<1.0.0). El uso de la nueva API de OpenAI se demuestra en openai_1.0_test.py.
-
simple_test.py
- Descripción: Una demostración tipo "hola mundo" del uso más simple de la biblioteca.
-
complex_test.py
- Descripción: Una demostración completa que muestra la mayoría de las características proporcionadas por la biblioteca.
-
coqui_test.py
- Descripción: Prueba del motor local coqui TTS.
-
translator.py
- Dependencias: Ejecutar
pip install openai realtimestt
. - Descripción: Traducciones en tiempo real a seis idiomas diferentes.
- Dependencias: Ejecutar
-
openai_voice_interface.py
- Dependencias: Ejecutar
pip install openai realtimestt
. - Descripción: Interfaz de usuario activada por palabra clave y basada en voz para la API de OpenAI.
- Dependencias: Ejecutar
-
advanced_talk.py
- Dependencias: Ejecutar
pip install openai keyboard realtimestt
. - Descripción: Elija el motor TTS y la voz antes de iniciar la conversación con IA.
- Dependencias: Ejecutar
-
minimalistic_talkbot.py
- Dependencias: Ejecutar
pip install openai realtimestt
. - Descripción: Un talkbot básico en 20 líneas de código.
- Dependencias: Ejecutar
-
simple_llm_test.py
- Dependencias: Ejecutar
pip install openai
. - Descripción: Demostración simple de cómo integrar la biblioteca con modelos de lenguaje grande (LLMs).
- Dependencias: Ejecutar
-
test_callbacks.py
- Dependencias: Ejecutar
pip install openai
. - Descripción: Muestra los callbacks y te permite verificar los tiempos de latencia en un entorno de aplicación del mundo real.
- Dependencias: Ejecutar
Pausar, Reanudar y Detener
Pausar el flujo de audio:
stream.pause()
Reanudar un flujo pausado:
stream.resume()
Detener el flujo inmediatamente:
stream.stop()
Requisitos Explicados
- Versión de Python:
- Requerido: Python >= 3.9, < 3.13
-
Razón: La biblioteca depende de la biblioteca GitHub "TTS" de coqui, que requiere versiones de Python en este rango.
-
PyAudio: para crear un flujo de audio de salida
-
stream2sentence: para dividir el flujo de texto entrante en oraciones
-
pyttsx3: Motor de conversión de texto a voz del sistema
-
pydub: para convertir formatos de fragmentos de audio
-
azure-cognitiveservices-speech: Motor de conversión de texto a voz de Azure
-
elevenlabs: Motor de conversión de texto a voz de Elevenlabs
-
coqui-TTS: Biblioteca de texto a voz XTTS de Coqui para TTS neuronal local de alta calidad
Agradecimiento especial al Instituto de Investigación Idiap por mantener un fork de coqui tts.
-
openai: para interactuar con la API TTS de OpenAI
-
gtts: Conversión de texto a voz de Google translate