4.0 KiB
Teksti kõneks - Virtuaalne IoT-seade
Selles õppetunni osas kirjutad koodi, et muuta tekst kõneks, kasutades kõneteenust.
Teksti muutmine kõneks
Kõneteenuste SDK, mida kasutasid eelmises õppetunnis kõne tekstiks muutmiseks, saab kasutada ka teksti tagasi kõneks muutmiseks. Kõne taotlemisel tuleb määrata hääl, mida kasutada, kuna kõnet saab genereerida mitmesuguste erinevate häältega.
Iga keel toetab erinevaid hääli, ja kõneteenuste SDK-st saad nimekirja iga keele toetatud häältest.
Ülesanne - teksti muutmine kõneks
-
Ava projekt
smart-timerVS Code'is ja veendu, et virtuaalne keskkond on terminalis laaditud. -
Impordi
SpeechSynthesizerpaketistazure.cognitiveservices.speech, lisades selle olemasolevatele importidele:from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer, SpeechSynthesizer -
Loo
sayfunktsiooni kohal kõnekonfiguratsioon, mida kasutada kõnesüntesaatoriga:speech_config = SpeechConfig(subscription=speech_api_key, region=location) speech_config.speech_synthesis_language = language speech_synthesizer = SpeechSynthesizer(speech_config=speech_config)See kasutab sama API-võtit, asukohta ja keelt, mida kasutas äratundja.
-
Lisa sellele alla järgmine kood, et saada hääl ja määrata see kõnekonfiguratsioonile:
voices = speech_synthesizer.get_voices_async().get().voices first_voice = next(x for x in voices if x.locale.lower() == language.lower()) speech_config.speech_synthesis_voice_name = first_voice.short_nameSee hangib nimekirja kõigist saadaolevatest häältest ja leiab esimese hääle, mis vastab kasutatavale keelele.
💁 Saad täieliku nimekirja toetatud häältest Microsoft Docs'i keele ja hääle toe dokumentatsioonist. Kui soovid kasutada konkreetset häält, siis võid selle funktsiooni eemaldada ja määrata hääle nime dokumentatsioonist. Näiteks:
speech_config.speech_synthesis_voice_name = 'hi-IN-SwaraNeural' -
Uuenda
sayfunktsiooni sisu, et genereerida SSML vastuse jaoks:ssml = f'<speak version=\'1.0\' xml:lang=\'{language}\'>' ssml += f'<voice xml:lang=\'{language}\' name=\'{first_voice.short_name}\'>' ssml += text ssml += '</voice>' ssml += '</speak>' -
Selle alla peata kõnetuvastus, räägi SSML, ja seejärel käivita tuvastus uuesti:
recognizer.stop_continuous_recognition() speech_synthesizer.speak_ssml(ssml) recognizer.start_continuous_recognition()Tuvastus peatatakse, kui tekst räägitakse, et vältida taimeri käivitamise teate tuvastamist, LUIS-i saatmist ja võimaliku uue taimeri seadistamise tõlgendamist.
💁 Saad seda testida, kommenteerides välja read, mis peatavad ja taaskäivitavad tuvastuse. Sea üks taimer ja võid avastada, et teade seab uue taimeri, mis põhjustab uue teate, mis seab uue taimeri, ja nii edasi lõputult!
-
Käivita rakendus ja veendu, et funktsioonirakendus töötab samuti. Sea mõned taimerid ja kuuled kõne vastust, mis ütleb, et sinu taimer on seadistatud, ning teist kõne vastust, kui taimer on lõppenud.
💁 Selle koodi leiad kaustast code-spoken-response/virtual-iot-device.
😀 Sinu taimeriprogramm oli edukas!
Lahtiütlus:
See dokument on tõlgitud AI tõlketeenuse Co-op Translator abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.