En este ejemplo de abajo utilizo el sintetizador de voz de google, es necesario estar conectado a internet para que funcione. Es necesario descargarse «gtts» desde el «pip» dde python, y «playsound» también desde pip. Se genera un archivo .mp3 que luego reproduce playsound.
import gtts
from playsound import playsound
# in spanish
tts = gtts.gTTS("Hola como estas?.", lang="es")
tts.save("hola.mp3")
playsound("hola.mp3")
En este ejemplo de codigo, sintetizo la voz de manera local, sin internet utilizando el sintetizador de macOS, 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()
En el siguiente ejemplo utilizo un sintetizador de python llamado «espeak» de forma local, sin necesidad de internet. Es necesario instalar las librerias de python «pydub», «ffmpeg», «playsound» y «espeak» como sintetizador de voz.
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")
Deja una respuesta Cancelar la respuesta