fusion_hat.tts Modul
Text-to-Speech ( TTS ) Modul.
Dieses Modul stellt eine Text-to-Speech ( TTS ) Klasse bereit, die verwendet werden kann, um Text mithilfe verschiedener TTS-Engines in Sprache umzuwandeln.
Verfügbare TTS-Engines:
Piper: Eine schnelle und lokale neuronale Text-to-Speech-Engine, die espeak-ng für die Phonemisierung einbettet.Pico2Wave: SVOX Pico TTS-Engine, die verwendet wird, um Text in eine WAV-Audiodatei umzuwandeln.Espeak: Ein kompakter Open-Source-Sprachsynthesizer für Englisch und andere Sprachen.OpenAI_TTSOnline-TTS-Dienst von OpenAI.
Beispiel
Piper
Piper-TTS-Engine initialisieren.
>>> from fusion_hat.tts import Piper
>>> tts = Piper()
Verfügbare Länder anzeigen.
>>> tts.available_countrys()
['ar_JO', 'ca_ES', 'cs_CZ', 'cy_GB', 'da_DK', 'de_DE', 'el_GR', 'en_GB', 'en_US', 'es_ES', 'es_MX', 'fa_IR', 'fi_FI', 'fr_FR', 'hu_HU', 'is_IS', 'it_IT', 'ka_GE', 'kk_KZ', 'lb_LU', 'lv_LV', 'ml_IN', 'ne_NP', 'nl_BE', 'nl_NL', 'no_NO', 'pl_PL', 'pt_BR', 'pt_PT', 'ro_RO', 'ru_RU', 'sk_SK', 'sl_SI', 'sr_RS', 'sv_SE', 'sw_CD', 'tr_TR', 'uk_UA', 'vi_VN', 'zh_CN']
Alle Modelle für das Land en_US auflisten.
>>> tts.available_models('en_US')
{'amy': ['en_US-amy-low', 'en_US-amy-medium'], 'arctic': ['en_US-arctic-medium'], 'bryce': ['en_US-bryce-medium'], 'danny': ['en_US-danny-low'], 'hfc_female': ['en_US-hfc_female-medium'], 'hfc_male': ['en_US-hfc_male-medium'], 'joe': ['en_US-joe-medium'], 'john': ['en_US-john-medium'], 'kathleen': ['en_US-kathleen-low'], 'kristin': ['en_US-kristin-medium'], 'kusal': ['en_US-kusal-medium'], 'l2arctic': ['en_US-l2arctic-medium'], 'lessac': ['en_US-lessac-low', 'en_US-lessac-medium', 'en_US-lessac-high'], 'libritts': ['en_US-libritts-high'], 'libritts_r': ['en_US-libritts_r-medium'], 'ljspeech': ['en_US-ljspeech-medium', 'en_US-ljspeech-high'], 'norman': ['en_US-norman-medium'], 'reza_ibrahim': ['en_US-reza_ibrahim-medium'], 'ryan': ['en_US-ryan-low', 'en_US-ryan-medium', 'en_US-ryan-high'], 'sam': ['en_US-sam-medium']}
Modell festlegen
>>> tts.set_model('en_US-amy-low')
Nachricht sprechen.
>>> tts.say("Hi, I'm piper TTS. A fast and local neural text-to-speech engine that embeds espeak-ng for phonemization.")
Espeak
Espeak-TTS-Engine importieren und initialisieren.
>>> from fusion_hat.tts import Espeak
>>> tts = Espeak()
Amplitude 0–200 setzen, Standard 100
>>> tts.set_amp(200)
Geschwindigkeit 80–260 setzen, Standard 150
>>> tts.set_speed(150)
Pause ( Gap ) 0–200 setzen, Standard 1
>>> tts.set_gap(1)
Tonhöhe 0–99 setzen, Standard 80
>>> tts.set_pitch(80)
Nachricht sprechen.
>>> tts.say("Hello world!")
Pico2Wave
Pico2Wave-TTS-Engine importieren und initialisieren.
>>> from fusion_hat.tts import Pico2Wave
>>> tts = Pico2Wave()
Verfügbare Sprachen auflisten.
>>> tts.SUPPORTED_LANGUAUE
['en-US', 'en-GB', 'de-DE', 'es-ES', 'fr-FR', 'it-IT']
Sprache festlegen.
>>> tts.set_lang('en-US')
Nachricht sprechen.
>>> tts.say("Hello world!")
OpenAI TTS
OpenAI-TTS-Engine importieren und initialisieren.
>>> from fusion_hat.tts import OpenAI_TTS
>>> API_KEY = "sk-..."
>>> tts = OpenAI_TTS(api_key=API_KEY)
Stimme festlegen.
>>> tts.set_voice(tts.Voice.ALLOY)
Nachricht sprechen.
>>> tts.say("Hello world!")
Nachricht mit Anweisungen sprechen.
>>> tts.say("I'm so sad right now.", instructions="say it sadly")
- class fusion_hat.tts.Piper(*args, **kwargs)[Quellcode]
Basisklassen:
_BasePiper-TTS-Engine.
- Parameter:
model (str, optional) – Modell, None lassen, um das Standardmodell zu verwenden, Standard ist None
*args – wird an
sunfounder_voice_assistant._base._Baseübergeben.**kwargs – wird an
sunfounder_voice_assistant._base._Baseübergeben.
- _load_model_list()[Quellcode]
Load model list from local cache or built-in defaults (offline, no network).
- update_model_list()[Quellcode]
Fetch latest model list from network and save to cache.
Call this manually when you want to check for new models online. Falls back to local cache if network is unavailable.
- get_language() str[Quellcode]
Sprache aus dem Modell abrufen.
- Rückgabe:
Sprache
- Rückgabetyp:
str
- is_model_downloaded(model: str) bool[Quellcode]
Prüfen, ob das Modell heruntergeladen ist.
- Parameter:
model (str) – Modell
- Rückgabe:
True, wenn das Modell heruntergeladen ist, andernfalls False
- Rückgabetyp:
bool
- download_model(model: str, force: bool = False, progress_callback: Callable[[int, int], None] = None) None[Quellcode]
Modell herunterladen.
- Parameter:
model (str) – Modell
force (bool, optional) – Download erzwingen, Standard ist False
progress_callback (Callable[[int, int], None], optional) – Fortschritts-Callback, Standard ist None
- fix_chinese_punctuation(text: str) str[Quellcode]
Chinesische Satzzeichen durch englische Satzzeichen ersetzen.
- Parameter:
text (str) – Text
- Rückgabe:
Text mit englischen Satzzeichen
- Rückgabetyp:
str
- tts(text: str, file: str) None[Quellcode]
Text zu einer Wave-Datei synthetisieren.
- Parameter:
text (str) – Text
file (str) – Wave-Dateipfad
- Verursacht:
ValueError – Modell nicht gesetzt, setzen Sie zuerst das Modell mit Piper.set_model( model )
- stream(text: str) None[Quellcode]
Text zum Lautsprecher streamen.
- Parameter:
text (str) – Text
- Verursacht:
ValueError – Modell nicht gesetzt, setzen Sie zuerst das Modell mit Piper.set_model( model )
- say(text: str, stream: bool = True) None[Quellcode]
Text sprechen.
- Parameter:
text (str) – Text
stream (bool, optional) – Zum Lautsprecher streamen, Standard ist True
- Verursacht:
ValueError – Modell nicht gesetzt, setzen Sie zuerst das Modell mit Piper.set_model( model )
- available_models(country: str = None) List[str][Quellcode]
Verfügbare Modelle abrufen.
- Parameter:
country (str, optional) – Land, None lassen, um alle Modelle zu erhalten, Standard ist None
- Rückgabe:
Verfügbare Modelle
- Rückgabetyp:
List[str]
- available_countrys() List[str][Quellcode]
Verfügbare Länder abrufen.
- Rückgabe:
Verfügbare Länder
- Rückgabetyp:
List[str]
- get_model_path(model: str) str[Quellcode]
Modellpfad abrufen.
- Parameter:
model (str) – Modell
- Rückgabe:
Modellpfad
- Rückgabetyp:
str
- set_model(model: str) None[Quellcode]
Modell festlegen.
- Parameter:
model (str) – Modell
- Verursacht:
ValueError – Modell nicht gefunden
- class fusion_hat.tts.Pico2Wave(*args, **kwargs)[Quellcode]
Basisklassen:
_BasePico2Wave-TTS-Engine.
- Parameter:
lang (str, optional) – Sprache, None lassen, um die Standardsprache zu verwenden, Standard ist ‚en-US‘
*args – wird an
sunfounder_voice_assistant._base._Baseübergeben.**kwargs – wird an
sunfounder_voice_assistant._base._Baseübergeben.
- SUPPORTED_LANGUAUE = ['en-US', 'en-GB', 'de-DE', 'es-ES', 'fr-FR', 'it-IT']
Unterstützte Sprachen.
- say(words: str) None[Quellcode]
Wörter mit pico2wave sprechen.
- Parameter:
words (str) – Zu sprechende Wörter.
- set_lang(lang: str) None[Quellcode]
Sprache festlegen.
- Parameter:
lang (str) – Sprache.
- class fusion_hat.tts.Espeak(*args, **kwargs)[Quellcode]
Basisklassen:
_BaseEspeak-TTS-Engine
- Parameter:
*args – wird an
sunfounder_voice_assistant._base._Baseübergeben.**kwargs – wird an
sunfounder_voice_assistant._base._Baseübergeben.
- ESPEAK = 'espeak'
- tts(words: str, file_path: str) None[Quellcode]
Text-to-Speech mit espeak
- Parameter:
words (str) – Zu sprechendes Wort
file_path (str) – Pfad zum Speichern der Audiodatei
- say(words: str) None[Quellcode]
Wörter mit espeak sprechen
- Parameter:
words (str) – Zu sprechende Wörter
- set_amp(amp: int) None[Quellcode]
Amplitude setzen
- Parameter:
amp (int) – Amplitude ( 0–200 )
- set_speed(speed: int) None[Quellcode]
Geschwindigkeit setzen
- Parameter:
speed (int) – Geschwindigkeit ( 80–260 )
- set_gap(gap: int) None[Quellcode]
Pause ( Gap ) setzen
- Parameter:
gap (int) – Pause ( Gap ) ( 0–200 )
- set_pitch(pitch: int) None[Quellcode]
Tonhöhe setzen
- Parameter:
pitch (int) – Tonhöhe ( 0–99 )
- class fusion_hat.tts.OpenAI_TTS(*args, **kwargs)[Quellcode]
Basisklassen:
_BaseOpenAI-TTS-Engine.
- Parameter:
voice (Voice, optional) – Stimme, Standard ist Voice.ALLOY.
model (Model, optional) – Modell, Standard ist Model.GPT_4O_MINI_TTS.
api_key (str, optional) – API-Schlüssel.
gain (float, optional) – Lautstärkeverstärkung, Standard ist 1.5.
log (logging.Logger, optional) – Logger, Standard ist None.
*args – wird an
sunfounder_voice_assistant._base._Baseübergeben.**kwargs – wird an
sunfounder_voice_assistant._base._Baseübergeben.
- DEFAULT_INSTRUCTIONS = 'Speak in a cheerful and positive tone.'
- URL = 'https://api.openai.com/v1/audio/speech'
- AUDIO_FORMAT = 'wav'
- class Voice(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[Quellcode]
Basisklassen:
StrEnumStimmen-Enum.
- ALLOY = 'alloy'
- ASH = 'ash'
- BALLAD = 'ballad'
- CORAL = 'coral'
- ECHO = 'echo'
- FABLE = 'fable'
- NOVA = 'nova'
- ONYX = 'onyx'
- SAGE = 'sage'
- SHIMMER = 'shimmer'
- static _generate_next_value_(name, start, count, last_values)
Gibt die kleingeschriebene Version des Mitgliednamens zurück.
- class Model(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[Quellcode]
Basisklassen:
StrEnumModell-Enum.
- GPT_4O_MINI_TTS = 'gpt-4o-mini-tts'
- static _generate_next_value_(name, start, count, last_values)
Gibt die kleingeschriebene Version des Mitgliednamens zurück.
- DEFAULT_MODEL = 'gpt-4o-mini-tts'
- DEFAULT_VOICE = 'alloy'
- tts(words: str, output_file: str = './openai_tts.wav', instructions: str | None = None, stream: bool = False) bool[Quellcode]
OpenAI-TTS-API anfordern.
- Parameter:
words (str) – Zu sprechende Wörter.
output_file (str, optional) – Output file, default is ‚./openai_tts.wav‘.
instructions (str, optional) – Anweisungen, Standard ist None.
stream (bool, optional) – Ob das Audio gestreamt werden soll, Standard ist False.
- Rückgabe:
True bei Erfolg, andernfalls False.
- Rückgabetyp:
bool
- say(words: str, instructions: str | None = None, stream: bool = True) None[Quellcode]
Wörter sprechen.
- Parameter:
words (str) – Zu sprechende Wörter.
instructions (str, optional) – Anweisungen, Standard ist None.
stream (bool, optional) – Ob das Audio gestreamt werden soll, Standard ist True.
- set_voice(voice: [<enum 'Voice'>, <class 'str'>]) None[Quellcode]
Stimme festlegen.
- Parameter:
voice (Voice | str) – Stimme.
- set_model(model: [<enum 'Model'>, <class 'str'>]) None[Quellcode]
Modell festlegen.
- Parameter:
model (Model | str) – Modell.
- set_api_key(api_key: str) None[Quellcode]
API-Schlüssel setzen.
- Parameter:
api_key (str) – API-Schlüssel.
- set_gain(gain: float) None[Quellcode]
Verstärkung setzen.
- Parameter:
gain (float) – Verstärkung.