Sintesi vocale
Tip
Per altri dettagli, vedi la scheda Testo e immagini .
La sintesi vocale, spesso chiamata sintesi testo-voce (TTS), riguarda il vocalizzare i dati, di solito convertendo il testo in parlato. La sintesi vocale genera in genere una voce udibile da un'origine basata su testo.
Una soluzione di sintesi vocale richiede in genere le informazioni seguenti:
- Testo da recitare
- La voce da usare per vocalizzare il discorso
Per sintetizzare il parlato, il sistema in genere tokenzza il testo da suddividere in singole parole e assegna suoni fonetici a ogni parola. Suddivide quindi la trascrizione fonetica in unità prosodice (ad esempio frasi, clausole o frasi). Il sistema crea fonemi dalle unità prosodice. Questi fonemi vengono quindi sintetizzati come audio e possono essere assegnati a una particolare voce, velocità di pronuncia, passo e volume.
È possibile usare l'output della sintesi vocale per molti scopi, ad esempio:
- Generazione di risposte vocali all'input dell'utente.
- Lettura dei messaggi ad alta voce.
- Annunci di trasmissione.
Voce di Azure - Sintesi vocale
Voce di Azure include un'API di sintesi vocale che si può esplorare nel portale di Microsoft Foundry.
L'API sintesi vocale consente di convertire l'input di testo in voce udibile, che può essere riprodotto direttamente tramite un altoparlante del computer o scritto in un file audio. Il servizio include più voci predefinite con supporto per più lingue e pronuncia a livello di area, incluse le voci neurali che usano reti neurali. Le voci neurali possono superare le limitazioni comuni nella sintesi vocale, ad esempio problemi di intonazione, causando una voce più naturale. È anche possibile sviluppare voci personalizzate e usarle con l'API sintesi vocale.
Nel nuovo portale di Microsoft Foundry è possibile esplorare le funzionalità di sintesi vocale di Azure nel playground Foundry. Nel playground Foundry Voce di Azure - Sintesi vocale, è possibile scegliere una voce sintetica dalla selezione disponibile. Puoi anche regolare alcuni parametri per controllare la distribuzione dell'audio, ad esempio velocità e inclinazione. L'output audio viene generato dal testo sintetizzato.
Uso di Azure text-to-speech SDK
È possibile usare Riconoscimento vocale di Azure per sviluppare un'applicazione che usa la sintesi vocale. Azure Text-to-Speech SDK consente alle applicazioni di convertire testo scritto in audio parlato naturale.
L'SDK consente all'applicazione di:
- Inviare testo a Riconoscimento vocale di Azure
- Generare audio parlato usando voci neurali
- Riprodurre o salvare l'audio negli altoparlanti o in un file audio
L'SDK gestisce l'autenticazione, la comunicazione di rete, la formattazione audio e la riproduzione in modo da poter concentrarsi sull'esperienza dell'app.
Sviluppo di un'applicazione
L'SDK di sintesi vocale viene in genere usato in:
- Applicazioni client per convertire il testo in sintesi vocale e riprodurlo immediatamente (ad esempio, un'app desktop o per dispositivi mobili)
- Servizi back-end: per generare file audio per la riproduzione successiva
Dopo aver installato Python SDK, è possibile creare ed eseguire il programma. Prendere in considerazione il codice Python seguente. Quando esegui il programma:
- L'app inizializza Speech SDK: fornisce un endpoint e un'autenticazione (chiave o ID Microsoft Entra)
- Viene fornito testo
- Il testo viene inviato ad Azure Speech: l'SDK gestisce la richiesta e la formattazione
- La sintesi vocale viene eseguita nel cloud: i modelli neurali generano audio
- Viene restituito l'audio: l'app riproduce, trasmette o salva temporaneamente l'audio
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?")
Esempio di app client
Si supponga, ad esempio, di creare un'app che vocalizzi i messaggi di testo. Nell'editor di codice è presente un file di testo e un file Python che contiene il codice dell'applicazione.
Prima di tutto, connettersi all'endpoint per Riconoscimento vocale di Azure. Creare quindi un SpeechSynthesizer oggetto . L'applicazione elabora quindi il file di testo contenente il messaggio e usa l'oggetto per generare l'audio SpeechSynthesizer parlato.
Quando si esegue l'applicazione, il testo verrà trasformato in un output audio del messaggio.
Informazioni su come incorporare le funzionalità di riconoscimento vocale in un'applicazione con Riconoscimento vocale di Azure - Voice Live.