Copyright (c) 2026 MindMesh Academy. All rights reserved. This content is proprietary and may not be reproduced or distributed without permission.
6.2.2. Text-to-Speech (TTS)
🔧 Implementation Reference: Text-to-Speech
| Item | Value |
|---|---|
| Package | azure-cognitiveservices-speech |
| Classes | SpeechConfig, SpeechSynthesizer |
| Endpoint | POST https://{region}.tts.speech.microsoft.com/cognitiveservices/v1 |
Testable Pattern:
speech_config.speech_synthesis_voice_name = "en-US-JennyNeural"
synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config)
result = synthesizer.speak_text("Hello, welcome!")
Error Handling Pattern:
def synthesize_with_error_handling(text: str) -> bytes:
"""Text-to-speech with error handling."""
synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=None)
result = synthesizer.speak_text(text)
if result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
return result.audio_data
elif result.reason == speechsdk.ResultReason.Canceled:
cancellation = result.cancellation_details
logging.error(f"Synthesis failed: {cancellation.error_details}")
raise RuntimeError(f"TTS failed: {cancellation.error_code}")
CLI Equivalent (REST):
curl -X POST "https://{region}.tts.speech.microsoft.com/cognitiveservices/v1" \
-H "Ocp-Apim-Subscription-Key: {key}" \
-H "Content-Type: application/ssml+xml" \
-H "X-Microsoft-OutputFormat: audio-16khz-128kbitrate-mono-mp3" \
-d '<speak version="1.0" xml:lang="en-US"><voice name="en-US-JennyNeural">Hello!</voice></speak>' \
--output speech.mp3
Written byAlvin Varughese
Founder•15 professional certifications