Die Spracherkennung ist eine wichtige Funktion in verschiedenen Anwendungen, wie z. B. Hausautomation, künstliche Intelligenz usw. Dieser Artikel bietet eine Einführung in die Verwendung der Python-Bibliothek SpeechRecognitionund pyttsx3.

Installation erforderlich:

  • Python-Spracherkennungsmodul:
    pip Spracherkennung installieren
  • PyAudio: Verwenden Sie den folgenden Befehl für Linux-Benutzer
    sudo apt-get install python3-pyaudio
    

    Windows-Benutzer können pyaudio installieren, indem sie den folgenden Befehl in einem Terminal ausführen

    pip install pyaudio
    
  • Python pyttsx3-Modul:
    pip install pyttsx3
    

Spracheingabe mit einem Mikrofon und Übersetzung von Sprache in Text

  • Anpassung für Umgebungsgeräusche zulassen: Da das Umgebungsgeräusch variiert, müssen wir dem Programm eine Sekunde oder auch Zeit geben, um die Energieschwelle der Aufzeichnung so anzupassen, dass sie entsprechend dem externen Geräuschpegel angepasst wird.
  • Übersetzung von Sprache in Text: Dies erfolgt mithilfe der Google-Spracherkennung. Dies erfordert eine aktive Internetverbindung, um zu funktionieren. Es gibt jedoch bestimmte Offline-Erkennungssysteme wie PocketSphinx, die jedoch einen sehr strengen Installationsprozess aufweisen, der mehrere Abhängigkeiten erfordert. Die Google-Spracherkennung ist eine der am einfachsten zu verwendenden.

Übersetzung von Sprache in Text:



Zuerst müssen wir die Bibliothek importieren und dann mit der init()Funktion initialisieren . Diese Funktion kann 2 Argumente annehmen.

init (driverName string, debug bool)
  • Treibername: [Name des verfügbaren Treibers] sapi5 unter Windows | nsss unter MacOS
  • Debug: Zum Aktivieren oder Deaktivieren der Debug-Ausgabe

Nach der Initialisierung lassen wir das Programm den Text mit der say() Funktion sprechen .
Diese Methode kann auch 2 Argumente annehmen.

say (Text-Unicode, Namenszeichenfolge)
  • Text: Jeder Text, den Sie hören möchten.
  • name: Zum Festlegen eines Namens für diese Rede. (Optional)

Zum Ausführen der Rede verwenden wir schließlich runAndWait()Alle say() - Texte werden nur gesagt, wenn der Dolmetscher auf sie trifft runAndWait().

Unten ist die Implementierung.

  
  
import speech_recognition as sr 
import pyttsx3  
  
r = sr.Recognizer()  
  
def SpeakText(command): 
      
    
    engine = pyttsx3.init() 
    engine.say(command)  
    engine.runAndWait() 
      
      
  
while(1):     
      
    
    
    try: 
          
        
        with sr.Microphone() as source2: 
              
            
            
            
            r.adjust_for_ambient_noise(source2, duration=0.2) 
              
            
            audio2 = r.listen(source2) 
              
            
            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") 
Eingabe: Sprachrede (Hallo Kumpel, wie geht es dir?)
Ausgabe: Hast du Hallo Kumpel gesagt, wie geht es dir?
[wenn IE 9]>