You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/no/6-consumer/lessons/3-spoken-feedback/virtual-device-text-to-spee...

4.6 KiB

Tekst til tale - Virtuell IoT-enhet

I denne delen av leksjonen skal du skrive kode for å konvertere tekst til tale ved hjelp av tale-tjenesten.

Konverter tekst til tale

SDK-en for tale-tjenester som du brukte i forrige leksjon for å konvertere tale til tekst, kan også brukes til å konvertere tekst tilbake til tale. Når du ber om tale, må du spesifisere stemmen som skal brukes, ettersom tale kan genereres med en rekke forskjellige stemmer.

Hvert språk støtter et utvalg av ulike stemmer, og du kan få en liste over støttede stemmer for hvert språk fra tale-tjenestens SDK.

Oppgave - konverter tekst til tale

  1. Åpne smart-timer-prosjektet i VS Code, og sørg for at det virtuelle miljøet er lastet inn i terminalen.

  2. Importer SpeechSynthesizer fra pakken azure.cognitiveservices.speech ved å legge det til de eksisterende importene:

    from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer, SpeechSynthesizer
    
  3. Over say-funksjonen, opprett en tale-konfigurasjon som skal brukes med tale-syntetisatoren:

    speech_config = SpeechConfig(subscription=speech_api_key,
                                 region=location)
    speech_config.speech_synthesis_language = language
    speech_synthesizer = SpeechSynthesizer(speech_config=speech_config)
    

    Dette bruker samme API-nøkkel, lokasjon og språk som ble brukt av gjenkjenneren.

  4. Under dette, legg til følgende kode for å hente en stemme og sette den på tale-konfigurasjonen:

    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_name
    

    Dette henter en liste over alle tilgjengelige stemmer, og finner deretter den første stemmen som samsvarer med språket som brukes.

    💁 Du kan få den fullstendige listen over støttede stemmer fra dokumentasjonen for språk- og stemmestøtte på Microsoft Docs. Hvis du ønsker å bruke en spesifikk stemme, kan du fjerne denne funksjonen og hardkode stemmen til stemmens navn fra denne dokumentasjonen. For eksempel:

    speech_config.speech_synthesis_voice_name = 'hi-IN-SwaraNeural'
    
  5. Oppdater innholdet i say-funksjonen for å generere SSML for responsen:

    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>'
    
  6. Under dette, stopp talegjenkjenningen, les opp SSML, og start deretter gjenkjenningen igjen:

    recognizer.stop_continuous_recognition()
    speech_synthesizer.speak_ssml(ssml)
    recognizer.start_continuous_recognition()
    

    Gjenkjenningen stoppes mens teksten leses opp for å unngå at kunngjøringen om at timeren starter blir oppfattet, sendt til LUIS og muligens tolket som en forespørsel om å sette en ny timer.

    💁 Du kan teste dette ved å kommentere ut linjene som stopper og starter gjenkjenningen. Sett én timer, og du kan oppleve at kunngjøringen setter en ny timer, som fører til en ny kunngjøring, som igjen setter en ny timer, og så videre i det uendelige!

  7. Kjør appen, og sørg for at funksjonsappen også kjører. Sett noen timere, og du vil høre en muntlig respons som sier at timeren din er satt, og deretter en ny muntlig respons når timeren er ferdig.

💁 Du finner denne koden i code-spoken-response/virtual-iot-device-mappen.

😀 Timer-programmet ditt var en suksess!


Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiserte oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.