Usare l'API di conversione del testo in parlato

Completato

Analogamente alle API Voce a testo , Azure Speech in Foundry Tools offre un'API Sintesi vocale per la sintesi vocale:

Come per il riconoscimento vocale, in pratica la maggior parte delle applicazioni interattive abilitate per il riconoscimento vocale viene compilata usando Azure Speech SDK.

Il modello per l'implementazione della sintesi vocale è simile a quello del riconoscimento vocale:

Diagramma che mostra come viene creato un oggetto SpeechSynthesizer da speechConfig e AudioConfig e il relativo metodo SpeakTextAsync viene usato per chiamare l'API Voce.

  1. Usare un oggetto SpeechConfig per incapsulare le informazioni necessarie per connettersi alla risorsa Voce di Azure. In particolare, la posizione e la chiave.
  2. Facoltativamente, usare un AudioConfig per definire il dispositivo di output per la sintesi vocale. Per impostazione predefinita, si tratta dell'altoparlante di sistema predefinito, ma è anche possibile specificare un file audio o impostando in modo esplicito questo valore su un valore Null, è possibile elaborare l'oggetto flusso audio restituito direttamente.
  3. Usare SpeechConfig e AudioConfig per creare un oggetto SpeechSynthesizer . Questo oggetto è un client proxy per l'API Sintesi vocale .
  4. Usare i metodi dell'oggetto SpeechSynthesizer per chiamare le funzioni API sottostanti. Ad esempio, il metodo SpeakTextAsync() usa il servizio Voce di Azure per convertire il testo in audio parlato.
  5. Elaborare la risposta dal servizio Voce di Azure. Nel caso del metodo SpeakTextAsync , il risultato è un oggetto SpeechSynthesisResult che contiene le proprietà seguenti:
    • AudioData
    • Proprietà
    • Motivo
    • ResultId

Quando la sintesi vocale è stata eseguita correttamente, la proprietà Reason viene impostata sull'enumerazione SynthesizingAudioCompleted e la proprietà AudioData contiene il flusso audio , che, a seconda dell'audioConfig , potrebbe essere stato inviato automaticamente a un altoparlante o a un file.

Esempio: sintesi del testo in parlato

L'esempio Python seguente utilizza Azure Speech in Foundry Tools per generare audio vocale dal testo.

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))