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_TTS Online-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: _Base

Piper-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: _Base

Pico2Wave-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: _Base

Espeak-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: _Base

OpenAI-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: StrEnum

Stimmen-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: StrEnum

Modell-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.