Python: Konvertieren Sie Sprache in Text und Text in Sprache
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 SpeechRecognition
und 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()
(
"Did you say "
+
MyText)
SpeakText(MyText)
except
sr.RequestError as e:
(
"Could not request results; {0}"
.
format
(e))
except
sr.UnknownValueError:
(
"unknown error occured"
)
Eingabe: Sprachrede (Hallo Kumpel, wie geht es dir?) Ausgabe: Hast du Hallo Kumpel gesagt, wie geht es dir?[wenn IE 9]>