Utiliser l’API Synthèse vocale
Conseil
Pour plus d’informations, consultez l’onglet Texte et images !
De même que ses API Transcription vocale, Azure Speech dans Foundry Tools offre une API de synthèse vocale pour la conversion de texte en parole.
Comme pour la reconnaissance vocale, dans la pratique, la plupart des applications interactives avec reconnaissance vocale sont créées à l’aide du Kit de développement logiciel (SDK) Azure Speech.
Le modèle d’implémentation de la synthèse vocale est similaire à celui de la reconnaissance vocale :
- Utilisez un objet SpeechConfig pour encapsuler les informations requises pour vous connecter à votre ressource Azure Speech. Plus précisément, son emplacement et sa clé.
- Si vous le souhaitez, utilisez un AudioConfig pour définir l’appareil de sortie pour la synthèse vocale. Par défaut, il s’agit du haut-parleur système par défaut, mais vous pouvez également spécifier un fichier audio, ou en définissant explicitement cette valeur sur une valeur Null, vous pouvez traiter l’objet de flux audio retourné directement.
- Utilisez SpeechConfig et AudioConfig pour créer un objet SpeechSynthesizer . Cet objet est un client proxy pour l’API Synthèse vocale .
- Utilisez les méthodes de l’objet SpeechSynthesizer pour appeler les fonctions d’API sous-jacentes. Par exemple, la méthode SpeakTextAsync() utilise le service Azure Speech pour convertir du texte en audio parlé.
- Traitez la réponse du service Azure Speech. Dans le cas de la méthode SpeakTextAsync , le résultat est un objet SpeechSynthesisResult qui contient les propriétés suivantes :
- AudioData
- Propriétés
- Motif
- Identifiant du Résultat
Lorsque la synthèse vocale a été correctement synthétisée, la propriété Reason est définie sur l’énumération SynthesizingAudioCompleted et la propriété AudioData contient le flux audio (qui, selon audioConfig peut avoir été automatiquement envoyé à un haut-parleur ou un fichier).
Exemple : synthèse vocale du texte
L’exemple Python suivant utilise Azure Speech dans Foundry Tools pour générer une sortie parlée à partir du texte.
import azure.cognitiveservices.speech as speechsdk
# Speech config encapsulates the connection to the resource
speech_config = speechsdk.SpeechConfig(subscription=KEY, endpoint=ENDPOINT)
# Audio output config determines where to send the audio stream (defaults to speaker)
audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)
# Use speech synthesizer to synthesize text as speech
speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config,
audio_config=audio_config)
text = "My voice is my password!"
speech_synthesis_result = speech_synthesizer.speak_text_async(text).get()
# Did it succeeed?
if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
# Yes!
print("Speech synthesized for text [{}]".format(text))
elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled:
# No - Ty to find out why not
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))