Síntese de fala
Observação
Consulte a guia Texto e imagens para obter mais detalhes!
A síntese de voz, frequentemente chamada de texto para fala (TTS), envolve-se em vocalizar dados, geralmente convertendo texto em fala. A síntese de voz geralmente gera fala audível a partir de uma fonte baseada em texto.
Uma solução de texto para fala normalmente requer a seguinte informação:
- O texto a ser pronunciado
- A voz a ser usada para vocalizar a fala
Para sintetizar a fala, o sistema normalmente tokeniza o texto para o dividir em palavras individuais e atribui sons fonéticos a cada palavra. Depois, fragmenta a transcrição fonética em unidades prosódicas (como frases, orações ou frases). O sistema cria fonemas a partir das unidades prosódicas. Estes fonemas são então sintetizados como áudio e podem ser atribuídos a uma voz, frequência de fala, afinação e volume específicos.
Pode usar a saída da síntese de voz para muitos fins, tais como:
- Gerar respostas faladas à entrada do utilizador.
- Ler mensagens em voz alta.
- A transmitir anúncios.
Azure Speech - Texto para Fala
O Azure Speech inclui uma API de texto para fala que podemos explorar no portal Microsoft Foundry.
A API de texto para voz permite converter a entrada de texto em voz audível, que pode ser reproduzida diretamente através de um altifalante de computador ou gravada num ficheiro de áudio. O serviço inclui múltiplas vozes predefinidas com suporte para múltiplas línguas e pronúncia regional, incluindo vozes neurais que utilizam redes neurais. As vozes neurais podem ultrapassar limitações comuns na síntese de fala, como problemas de entoação, resultando numa voz com um som mais natural. Você também pode desenvolver vozes personalizadas e usá-las com a API de texto para fala.
No novo portal Microsoft Foundry, podemos explorar as funcionalidades de texto-para-fala do Azure Speech no campo de experimentação do Foundry. No parque de jogos Azure Speech - Text to Speech Foundry, pode escolher uma voz sintética da seleção disponível. Também pode ajustar alguns parâmetros para controlar a entrega do áudio, como a velocidade e o tom. A saída áudio é gerada a partir do texto sintetizado.
Usando o SDK de texto para fala do Azure
Pode usar o Azure Speech para desenvolver uma aplicação que utilize síntese de voz. O Azure Text-to-Speech SDK permite que aplicações convertam texto escrito em áudio falado com som natural.
O SDK permite que a sua aplicação:
- Enviar texto para Azure Speech
- Gerar áudio falado usando vozes neurais
- Reproduza ou guarde o áudio em altifalantes ou num ficheiro de áudio.
O SDK trata da autenticação, comunicação em rede, formatação de áudio e reprodução, para que possa focar-se na experiência da sua aplicação.
Desenvolvimento de uma aplicação
O SDK de texto para fala é tipicamente usado em:
- Aplicações clientes para converter texto em voz e reproduzi-lo imediatamente (por exemplo, uma aplicação de desktop ou móvel)
- Serviços de backend: para gerar ficheiros de áudio para reprodução posterior
Depois de instalar o SDK em Python, pode criar e executar o seu programa. Considere o seguinte código Python. Quando o executas:
- A sua aplicação inicializa o Speech SDK: Fornece um endpoint e autenticação (chave ou Microsoft Entra ID)
- O texto é fornecido
- O texto é enviado para Azure Speech: O SDK trata do pedido e da formatação
- A síntese de fala corre na cloud: Modelos neurais geram áudio
- O áudio é devolvido: A sua aplicação reproduz, transmite ou guarda temporariamente o áudio
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?")
Exemplo de aplicação cliente
Por exemplo, suponha que cria uma aplicação que vocaliza mensagens de texto. No editor de código, tens um ficheiro de texto e um ficheiro Python que contém código de aplicação.
Primeiro, conecte-se ao endpoint do Azure Speech. Depois, cria um SpeechSynthesizer objeto. Depois, a aplicação processa o ficheiro de texto que contém a mensagem e usa o SpeechSynthesizer objeto para gerar o áudio falado.
Quando executas a aplicação, ela recebe o texto e devolve uma saída áudio da mensagem.
De seguida, aprenda como incorporar capacidades de fala para fala numa aplicação com o Azure Speech - Voice Live.