Usar a API de conversão de texto em fala
Da mesma forma que suas APIs de fala em texto , o serviço de Fala do Azure oferece outras APIs REST para síntese de fala:
- A API de Conversão de Texto em Fala , que é a principal maneira de executar a síntese de fala.
- A API de Síntese de Lote, que foi projetada para dar suporte a operações em lotes que convertem grandes volumes de texto em áudio, por exemplo, para gerar um audiolivro do texto de origem.
Você pode saber mais sobre as APIs REST na documentação da API REST de Conversão de Texto em Fala. Na prática, a maioria dos aplicativos interativos habilitados por fala usa o serviço de Fala do Azure por meio de um SDK específico à linguagem de programação.
Usando o SDK de Fala do Azure
Assim como acontece com o reconhecimento de fala, na prática, a maioria dos aplicativos interativos habilitados para fala são criados usando o SDK de Fala do Azure.
O padrão para implementar a síntese de fala é semelhante ao do reconhecimento de fala:
- Use um objeto SpeechConfig para encapsular as informações necessárias para se conectar ao recurso de Fala do Azure. Especificamente, sua localização e chave.
- Opcionalmente, use um AudioConfig para definir o dispositivo de saída para que a fala seja sintetizada. Por padrão, esse é o alto-falante do sistema padrão, 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.
- Use SpeechConfig e AudioConfig para criar um objeto SpeechSynthesizer. Esse 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 de API subjacentes. Por exemplo, o método SpeakTextAsync() usa o serviço de Fala do Azure para converter texto em áudio falado.
- Processe a resposta do serviço de Fala do Azure. No caso do método SpeakTextAsync , o resultado é um objeto SpeechSynthesisResult que contém as seguintes propriedades:
- AudioData
- Propriedades
- Motivo
- ResultId
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).