Usar a API de conversão de texto em fala
De forma semelhante às suas APIs de voz para texto , o serviço Azure Speech oferece outras APIs REST para síntese de voz:
- A API de conversão de texto em fala , que é a principal maneira de realizar a síntese de fala.
- A API de síntese em lote , que é projetada para suportar operações em lote que convertem grandes volumes de texto em áudio - por exemplo, para gerar um audiolivro a partir do texto de origem.
Você pode saber mais sobre as APIs REST na documentação da API REST de texto para fala. Na prática, a maioria das aplicações interativas ativadas por voz utiliza o serviço Azure Speech através de um SDK específico para a linguagem.
Usando o Azure Speech SDK
Tal como no reconhecimento de voz, na prática a maioria das aplicações interativas habilitadas por fala são construídas usando o Azure Speech SDK.
O padrão para implementar a síntese de fala é semelhante ao do reconhecimento de fala:
- Use um objeto SpeechConfig para encapsular a informação necessária para se ligar ao seu recurso Azure Speech. Especificamente, a sua localização e chave.
- Opcionalmente, use um AudioConfig para definir o dispositivo de saída para a fala a ser sintetizada. Por padrão, esse é o alto-falante padrão do sistema, mas você também pode especificar um arquivo de áudio ou, definindo explicitamente esse valor como um valor nulo, você pode processar o objeto de fluxo de áudio que é retornado diretamente.
- Utilize os SpeechConfig e AudioConfig para criar um objeto SpeechSynthesizer. Este objeto é um cliente proxy para a API de conversão de texto em fala .
- Use os métodos do objeto SpeechSynthesizer para chamar as funções subjacentes da API. Por exemplo, o método SpeakTextAsync() utiliza o serviço Azure Speech para converter texto em áudio falado.
- Processar a resposta do serviço Azure Speech. No caso do método SpeakTextAsync , o resultado é um objeto SpeechSynthesisResult que contém as seguintes propriedades:
- AudioData
- Propriedades
- Motivo
- IdDeResultado
Quando a fala foi sintetizada com êxito, a propriedade Reason é definida como a enumeração SynthesizingAudioCompleted e a propriedade AudioData contém o fluxo de áudio (que, dependendo do AudioConfig pode ter sido enviado automaticamente para um alto-falante ou arquivo).