5.9 KiB
Beszéd szöveggé alakítása - Virtuális IoT eszköz
Ebben a leckében kódot fogsz írni, amely a mikrofonod által rögzített beszédet szöveggé alakítja a beszédfelismerő szolgáltatás segítségével.
Beszéd szöveggé alakítása
Windows, Linux és macOS rendszereken a beszédfelismerő szolgáltatások Python SDK-ja használható arra, hogy a mikrofonodat figyelje, és az észlelt beszédet szöveggé alakítsa. Folyamatosan figyeli az audio szinteket, és akkor küldi el a beszédet szöveggé alakításra, amikor az audio szint csökken, például egy beszédblokk végén.
Feladat - beszéd szöveggé alakítása
-
Hozz létre egy új Python alkalmazást a számítógépeden egy
smart-timer
nevű mappában, amely egyetlenapp.py
fájlt és egy Python virtuális környezetet tartalmaz. -
Telepítsd a beszédfelismerő szolgáltatásokhoz szükséges Pip csomagot. Győződj meg róla, hogy ezt egy olyan terminálból telepíted, amelyben a virtuális környezet aktiválva van.
pip install azure-cognitiveservices-speech
⚠️ Ha a következő hibát kapod:
ERROR: Could not find a version that satisfies the requirement azure-cognitiveservices-speech (from versions: none) ERROR: No matching distribution found for azure-cognitiveservices-speech
Frissítened kell a Pip-et. Ezt az alábbi parancs segítségével teheted meg, majd próbáld meg újra telepíteni a csomagot:
pip install --upgrade pip
-
Add hozzá a következő importokat az
app.py
fájlhoz:import requests import time from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer
Ezek olyan osztályokat importálnak, amelyek a beszédfelismeréshez szükségesek.
-
Add hozzá a következő kódot a konfiguráció deklarálásához:
speech_api_key = '<key>' location = '<location>' language = '<language>' recognizer_config = SpeechConfig(subscription=speech_api_key, region=location, speech_recognition_language=language)
Cseréld ki a
<key>
helyére a beszédfelismerő szolgáltatás API kulcsát. Cseréld ki a<location>
helyére azt a helyet, amelyet a beszédfelismerő szolgáltatás erőforrás létrehozásakor használtál.Cseréld ki a
<language>
helyére azt a nyelvi helyet, amelyen beszélni fogsz, példáulen-GB
angolhoz vagyzn-HK
kantonihoz. A támogatott nyelvek és nyelvi helyek listáját megtalálhatod a Microsoft dokumentációjában a nyelv- és hangtámogatásról.Ez a konfiguráció egy
SpeechConfig
objektumot hoz létre, amelyet a beszédfelismerő szolgáltatások konfigurálására használnak. -
Add hozzá a következő kódot egy beszédfelismerő létrehozásához:
recognizer = SpeechRecognizer(speech_config=recognizer_config)
-
A beszédfelismerő egy háttérszálon fut, amely figyeli az audio jeleket, és az észlelt beszédet szöveggé alakítja. A szöveget egy visszahívási funkcióval érheted el - egy olyan funkcióval, amelyet definiálsz és átadsz a felismerőnek. Minden alkalommal, amikor beszédet észlel, a visszahívás meghívásra kerül. Add hozzá a következő kódot egy visszahívás definiálásához, és add át ezt a visszahívást a felismerőnek, valamint definiálj egy funkciót a szöveg feldolgozására, amely kiírja azt a konzolra:
def process_text(text): print(text) def recognized(args): process_text(args.result.text) recognizer.recognized.connect(recognized)
-
A felismerő csak akkor kezd el figyelni, amikor kifejezetten elindítod. Add hozzá a következő kódot a felismerés elindításához. Ez a háttérben fut, így az alkalmazásodnak egy végtelen ciklust is tartalmaznia kell, amely alvó állapotban tartja az alkalmazást.
recognizer.start_continuous_recognition() while True: time.sleep(1)
-
Futtasd az alkalmazást. Beszélj a mikrofonba, és az audio szöveggé alakítva megjelenik a konzolon.
(.venv) ➜ smart-timer python3 app.py Hello world. Welcome to IoT for beginners.
Próbálj ki különböző típusú mondatokat, valamint olyan mondatokat, amelyekben azonos hangzású, de eltérő jelentésű szavak szerepelnek. Például, ha angolul beszélsz, mondj olyat, hogy "I want to buy two bananas and an apple too", és figyeld meg, hogyan használja a megfelelő "to", "two" és "too" szavakat a szó kontextusa alapján, nem csak a hangzása alapján.
💁 Ezt a kódot megtalálhatod a code-speech-to-text/virtual-iot-device mappában.
😀 A beszéd szöveggé alakító programod sikeres volt!
Felelősség kizárása:
Ez a dokumentum az AI fordítási szolgáltatás Co-op Translator segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Fontos információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.