Użyj interfejsu API do zamiany tekstu na mowę
Wskazówka
Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .
Podobnie jak w interfejsach API zamiany mowy na tekst, usługa Azure Speech w narzędziach Foundry Tools oferuje interfejs API zamiany tekstu na mowę do syntezy mowy.
Podobnie jak w przypadku rozpoznawania mowy, większość interaktywnych aplikacji z obsługą mowy jest kompilowana przy użyciu zestawu Azure Speech SDK.
Wzorzec implementowania syntezy mowy jest podobny do wzorca rozpoznawania mowy:
- Użyj obiektu SpeechConfig , aby hermetyzować informacje wymagane do nawiązania połączenia z zasobem usługi Azure Speech. W szczególności jego lokalizacja i klucz.
- Opcjonalnie użyj polecenia AudioConfig , aby zdefiniować urządzenie wyjściowe dla mowy, które ma być syntetyzowane. Domyślnie jest to domyślny głośnik systemowy, ale można również określić plik audio lub jawnie ustawiając tę wartość na wartość null, można przetworzyć obiekt strumienia audio zwracany bezpośrednio.
- Użyj funkcji SpeechConfig i AudioConfig , aby utworzyć obiekt SpeechSynthesizer . Ten obiekt jest klientem proxy dla API Text to Speech.
- Użyj metod obiektu SpeechSynthesizer , aby wywołać podstawowe funkcje interfejsu API. Na przykład metoda SpeakTextAsync() używa usługi Azure Speech do konwertowania tekstu na dźwięk mówiony.
- Przetwarzanie odpowiedzi z usługi Azure Speech. W przypadku metody SpeakTextAsync wynik jest obiektem SpeechSynthesisResult zawierającym następujące właściwości:
- AudioData
- Właściwości
- Powód
- IdentyfikatorWyniku
Po pomyślnym zsyntetyzowaniu mowy właściwość Reason jest ustawiona na wyliczenie SynthesizingAudioCompleted, a właściwość AudioData zawiera strumień audio (który, w zależności od AudioConfig, mógł zostać automatycznie wysłany do głośnika lub pliku).
Przykład — syntezowanie tekstu jako mowy
Poniższy przykład w języku Python używa usługi Azure Speech w narzędziach Foundry Tools do generowania mówionych danych wyjściowych z tekstu.
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))