Utilizzo
Avvio Rapido
Ecco un esempio di utilizzo base:
from RealtimeTTS import TextToAudioStream, SystemEngine, AzureEngine, ElevenlabsEngine
engine = SystemEngine() # sostituisci con il tuo motore TTS
stream = TextToAudioStream(engine)
stream.feed("Hello world! How are you today?")
stream.play_async()
Inserimento del Testo
Puoi inserire singole stringhe:
stream.feed("Hello, this is a sentence.")
Oppure puoi inserire generatori e iteratori di caratteri per lo streaming in tempo reale:
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)
Riproduzione
In modo asincrono:
stream.play_async()
while stream.is_playing():
time.sleep(0.1)
In modo sincrono:
stream.play()
Test della Libreria
La sottodirectory test contiene una serie di script per aiutarti a valutare e comprendere le capacità della libreria RealtimeTTS.
Nota che la maggior parte dei test si basa ancora sulla "vecchia" API OpenAI (<1.0.0). L'utilizzo della nuova API OpenAI è dimostrato in openai_1.0_test.py.
-
simple_test.py
- Descrizione: Una dimostrazione stile "hello world" dell'utilizzo più semplice della libreria.
-
complex_test.py
- Descrizione: Una dimostrazione completa che mostra la maggior parte delle funzionalità fornite dalla libreria.
-
coqui_test.py
- Descrizione: Test del motore TTS coqui locale.
-
translator.py
- Dipendenze: Esegui
pip install openai realtimestt
. - Descrizione: Traduzioni in tempo reale in sei lingue diverse.
- Dipendenze: Esegui
-
openai_voice_interface.py
- Dipendenze: Esegui
pip install openai realtimestt
. - Descrizione: Interfaccia utente vocale attivata da parola chiave per l'API OpenAI.
- Dipendenze: Esegui
-
advanced_talk.py
- Dipendenze: Esegui
pip install openai keyboard realtimestt
. - Descrizione: Scegli il motore TTS e la voce prima di iniziare la conversazione con l'IA.
- Dipendenze: Esegui
-
minimalistic_talkbot.py
- Dipendenze: Esegui
pip install openai realtimestt
. - Descrizione: Un talkbot base in 20 righe di codice.
- Dipendenze: Esegui
-
simple_llm_test.py
- Dipendenze: Esegui
pip install openai
. - Descrizione: Semplice dimostrazione di come integrare la libreria con i modelli linguistici di grandi dimensioni (LLM).
- Dipendenze: Esegui
-
test_callbacks.py
- Dipendenze: Esegui
pip install openai
. - Descrizione: Mostra i callback e ti permette di verificare i tempi di latenza in un ambiente applicativo reale.
- Dipendenze: Esegui
Pausa, Ripresa e Stop
Metti in pausa lo stream audio:
stream.pause()
Riprendi uno stream in pausa:
stream.resume()
Ferma immediatamente lo stream:
stream.stop()
Requisiti Spiegati
- Versione Python:
- Richiesto: Python >= 3.9, < 3.13
-
Motivo: La libreria dipende dalla libreria GitHub "TTS" di coqui, che richiede versioni Python in questo intervallo.
-
PyAudio: per creare uno stream audio di output
-
stream2sentence: per dividere il flusso di testo in ingresso in frasi
-
pyttsx3: Motore di conversione text-to-speech di sistema
-
pydub: per convertire i formati dei chunk audio
-
azure-cognitiveservices-speech: Motore di conversione text-to-speech di Azure
-
elevenlabs: Motore di conversione text-to-speech di Elevenlabs
-
coqui-TTS: Libreria text-to-speech XTTS di Coqui per TTS neurale locale di alta qualità
Un ringraziamento speciale a Idiap Research Institute per il mantenimento di un fork di coqui tts.
-
openai: per interagire con l'API TTS di OpenAI
-
gtts: Conversione text-to-speech di Google translate