Python: convertir voz a texto y texto a voz

El reconocimiento de voz es una característica importante en varias aplicaciones utilizadas, como la automatización del hogar, la inteligencia artificial, etc. Este artículo tiene como objetivo proporcionar una introducción sobre cómo utilizar la biblioteca SpeechRecognition y pyttsx3 de Python.
Instalación requerida: 
 

  • Módulo de reconocimiento de voz de Python: 
     
pip install speechrecognition
  •  
  • PyAudio: use el siguiente comando para usuarios de Linux 
     
sudo apt-get install python3-pyaudio
  • Los usuarios de Windows pueden instalar pyaudio ejecutando el siguiente comando en una terminal 
     
pip install pyaudio
  •  
  • Módulo Python pyttsx3: 
     
pip install pyttsx3
  •  

Entrada de voz usando un micrófono y traducción de voz a texto 
 

  • Permitir ajuste por ruido ambiental: dado que el ruido ambiental varía, debemos permitir que el programa ajuste el umbral de energía de grabación por un segundo o más para que se ajuste de acuerdo con el nivel de ruido externo. 
     
  • Traducción de voz a texto: Esto se hace con la ayuda de Google Speech Recognition. Esto requiere una conexión a Internet activa para funcionar. Sin embargo, hay ciertos sistemas de Reconocimiento fuera de línea como PocketSphinx, pero tienen un proceso de instalación muy riguroso que requiere varias dependencias. El reconocimiento de voz de Google es uno de los más fáciles de usar. 
     

Traducción de voz a texto:
Primero, necesitamos importar la biblioteca y luego inicializarla usando la función init(). Esta función puede tomar 2 argumentos. 
 

init(driverName string, debug bool)
  • drivername: [Nombre del controlador disponible] sapi5 en Windows | nsss en macOS 
     
  • depuración: para habilitar o deshabilitar la salida de depuración 
     

Después de la inicialización, haremos que el programa hable el texto usando la función say(). 
Este método también puede tomar 2 argumentos. 
 

say(text unicode, name string)
  • texto: Cualquier texto que desee escuchar. 
     
  • nombre: Para establecer un nombre para este discurso. (opcional) 
     

Finalmente, para ejecutar el discurso usamos runAndWait() Todos los textos de say() no se dirán a menos que el intérprete encuentre runAndWait().
A continuación se muestra la implementación.
 

Python

# Python program to translate
# speech to text and text to speech
 
 
import speech_recognition as sr
import pyttsx3
 
# Initialize the recognizer
r = sr.Recognizer()
 
# Function to convert text to
# speech
def SpeakText(command):
     
    # Initialize the engine
    engine = pyttsx3.init()
    engine.say(command)
    engine.runAndWait()
     
     
# Loop infinitely for user to
# speak
 
while(1):   
     
    # Exception handling to handle
    # exceptions at the runtime
    try:
         
        # use the microphone as source for input.
        with sr.Microphone() as source2:
             
            # wait for a second to let the recognizer
            # adjust the energy threshold based on
            # the surrounding noise level
            r.adjust_for_ambient_noise(source2, duration=0.2)
             
            #listens for the user's input
            audio2 = r.listen(source2)
             
            # Using google to recognize audio
            MyText = r.recognize_google(audio2)
            MyText = MyText.lower()
 
            print("Did you say "+MyText)
            SpeakText(MyText)
             
    except sr.RequestError as e:
        print("Could not request results; {0}".format(e))
         
    except sr.UnknownValueError:
        print("unknown error occured")
Input: voice speech (Hi buddy how are you)  

Output: Did you say hi buddy how are you

Publicación traducida automáticamente

Artículo escrito por hameedkunkanoor y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *