Spraaksynthese
Opmerking
Zie het tabblad Tekst en afbeeldingen voor meer informatie.
Spraaksynthese, vaak tekst-naar-spraak (TTS) genoemd, houdt zich bezig met stemgegevens, meestal door tekst naar spraak te converteren. Spraaksynthese genereert meestal hoorbare spraak van een op tekst gebaseerde bron.
Een tekst-naar-spraak-oplossing vereist doorgaans de volgende informatie:
- De te spreken tekst
- De stem die gebruikt moet worden om de spraak te vocaliseren.
Om spraak te synthetiseren, tokeneert het systeem meestal de tekst om deze op te splitsen in afzonderlijke woorden en wijst fonetische geluiden toe aan elk woord. Vervolgens wordt de fonetische transcriptie in prosodische eenheden (zoals zinnen, zinsdelen of zinnen) opgesplitst. Het systeem maakt fonemen op basis van de prosodische eenheden. Deze foneemen worden vervolgens in audio gesynthetiseerd en er kan een bepaalde stem, spreeksnelheid, toonhoogte en volume aan worden toegewezen.
U kunt de uitvoer van spraaksynthese gebruiken voor veel doeleinden, zoals:
- Gesproken antwoorden genereren op gebruikersinvoer.
- Berichten hardop voorlezen.
- Omroepaankondigingen.
Azure Speech - Tekst naar spraak
Azure Speech bevat een tekst-naar-spraak-API die we kunnen verkennen in de Microsoft Foundry-portal.
Met de tekst-naar-spraak-API kunt u tekstinvoer converteren naar hoorbare spraak, die rechtstreeks kan worden afgespeeld via een computerluidspreker of naar een audiobestand kan worden geschreven. De service bevat meerdere vooraf gedefinieerde stemmen met ondersteuning voor meerdere talen en regionale uitspraak, inclusief neurale stemmen die gebruikmaken van neurale netwerken. Neurale stemmen kunnen veelvoorkomende beperkingen in spraaksynthese overwinnen, zoals problemen met intonatie, wat resulteert in een natuurlijkere klinkende stem. U kunt ook aangepaste stemmen ontwikkelen en deze gebruiken met de tekst-naar-spraak-API.
In de nieuwe Microsoft Foundry-portal kunnen we de tekst-naar-spraak-mogelijkheden van Azure Speech verkennen in de Foundry-speeltuin. In de Azure Speech - Text to Speech Foundry-speeltuin kunt u een synthetische stem kiezen uit de beschikbare selectie. U kunt ook enkele parameters aanpassen om de levering van de audio te regelen, zoals snelheid en toonhoogte. De audio-uitvoer wordt gegenereerd op basis van de gesynthetiseerde tekst.
De Azure Text-to-Speech SDK gebruiken
U kunt Azure Speech gebruiken om een toepassing te ontwikkelen die gebruikmaakt van spraaksynthese. Met de Azure Text-to-Speech SDK kunnen toepassingen geschreven tekst converteren naar natuurlijk klinkende gesproken audio.
Met de SDK kan uw toepassing:
- Tekst verzenden naar Azure Speech
- Gesproken audio genereren met neurale stemmen
- De audio afspelen of opslaan in luidsprekers of een audiobestand
De SDK verwerkt verificatie, netwerkcommunicatie, audioopmaak en afspelen, zodat u zich kunt richten op de ervaring van uw app.
Een toepassing ontwikkelen
De text-to-speech SDK wordt meestal gebruikt in:
- Clienttoepassingen om tekst te converteren naar spraak en deze direct af te spelen (bijvoorbeeld een desktop- of mobiele app)
- Back-endservices: audiobestanden genereren voor later afspelen
Nadat u de Python SDK hebt geïnstalleerd, kunt u uw programma maken en uitvoeren. Houd rekening met de volgende Python-code. Wanneer u het uitvoert:
- Uw app initialiseert de Speech SDK: biedt een eindpunt en verificatie (sleutel of Microsoft Entra-id)
- Er wordt tekst opgegeven
- Tekst wordt verzonden naar Azure Speech: de SDK verwerkt de aanvraag en opmaak
- Spraaksynthese wordt uitgevoerd in de cloud: Neurale modellen genereren audio
- Audio wordt geretourneerd: uw app speelt, streamt of slaat de audio tijdelijk op
import os
import azure.cognitiveservices.speech as speechsdk
# This example requires environment variables named "FOUNDRY_KEY" and "ENDPOINT"
speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('FOUNDRY_KEY'), endpoint=os.environ.get('ENDPOINT'))
audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)
# The neural multilingual voice can speak different languages based on the input text.
speech_config.speech_synthesis_voice_name='en-US-Ava:DragonHDLatestNeural'
speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)
# Get text from the console and synthesize to the default speaker.
print("Enter some text that you want to speak >")
text = input()
speech_synthesis_result = speech_synthesizer.speak_text_async(text).get()
if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
print("Speech synthesized for text [{}]".format(text))
elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled:
cancellation_details = speech_synthesis_result.cancellation_details
print("Speech synthesis canceled: {}".format(cancellation_details.reason))
if cancellation_details.reason == speechsdk.CancellationReason.Error:
if cancellation_details.error_details:
print("Error details: {}".format(cancellation_details.error_details))
print("Did you set the speech resource key and endpoint values?")
Voorbeeld van client-app
Stel dat u een app maakt waarmee tekstberichten worden uitgesproken. In de code-editor hebt u één tekstbestand en één Python-bestand dat toepassingscode bevat.
Maak eerst verbinding met het eindpunt voor Azure Speech. Maak vervolgens een SpeechSynthesizer object. Vervolgens verwerkt de toepassing het tekstbestand met het bericht en gebruikt het SpeechSynthesizer object om de gesproken audio te genereren.
Wanneer u de toepassing uitvoert, zal de toepassing de tekst verwerken en een audio-uitvoer van het bericht teruggeven.
Leer vervolgens hoe u spraak-naar-spraak-mogelijkheden kunt opnemen in een toepassing met Azure Speech - Voice Live.