In diesem Beispiel unten verwende ich den Sprachsynthesizer von Google, es ist notwendig, mit dem Internet verbunden zu sein, damit es funktioniert. Es ist notwendig, „gtts“ aus dem „pip“ von Python herunterzuladen und auch „playsound“ aus dem pip. Es wird eine .mp3-Datei erstellt, die anschließend von playsound wiedergegeben wird.
import gtts
from playsound import playsound
# in spanish
tts = gtts.gTTS("Hola como estas?.", lang="es")
tts.save("hola.mp3")
playsound("hola.mp3")
In diesem Codebeispiel synthetisiere ich die Sprache lokal, ohne Internet, unter Verwendung des macOS-Sprachsynthesizers NSSpeechSynthesizer.
import sys
from Foundation import NSObject, NSLog
from AppKit import NSApplication, NSApp, NSSpeechSynthesizer
from PyObjCTools import AppHelper
class SpeechSynthesizerDelegate(NSObject):
def speechSynthesizer_didFinishSpeaking_(self, sender, didFinishSpeaking):
print("Terminó de hablar")
AppHelper.stopEventLoop()
def main():
app = NSApplication.sharedApplication()
# Texto a convertir en voz
text = "Hola como estas?"
# Crear instancia de NSSpeechSynthesizer y establecer su delegado
synthesizer = NSSpeechSynthesizer.alloc().init()
delegate = SpeechSynthesizerDelegate.alloc().init()
synthesizer.setDelegate_(delegate)
# Comenzar la síntesis de voz
synthesizer.startSpeakingString_(text)
# Iniciar el bucle de eventos
AppHelper.runEventLoop()
if __name__ == "__main__":
main()
Im folgenden Beispiel verwende ich einen Python-Sprachsynthesizer namens „espeak“ lokal, ohne Internetverbindung. Es ist notwendig, die Python-Bibliotheken „pydub“, „ffmpeg“, „playsound“ und „espeak“ als Sprachsynthesizer zu installieren.
import os
import tempfile
from pydub import AudioSegment
from playsound import playsound
def text_to_speech_espeak(text, output_file):
with tempfile.NamedTemporaryFile(delete=False) as tmp_wav:
# Convertir texto a voz usando eSpeak y guardar el resultado en un archivo WAV temporal
os.system(f'espeak -v es "{text}" -w {tmp_wav.name}')
# Leer el archivo WAV temporal y convertirlo al formato deseado
audio = AudioSegment.from_wav(tmp_wav.name)
# Guardar el archivo de audio en el formato deseado
audio.export(output_file, format="mp3")
# Texto a convertir en audio
input_text = "Hola como estas?."
# Ruta al archivo de salida
output_file_path = "output_audio.mp3"
# Convertir el texto en audio y guardarlo como archivo MP3
text_to_speech_espeak(input_text, output_file_path)
playsound("output_audio.mp3")
Schreibe einen Kommentar Antworten abbrechen