Usar a API de conversão de texto em fala

Concluído

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:

Um diagrama mostrando como um objeto SpeechSynthesizer é criado a partir de um SpeechConfig e AudioConfig, e seu método SpeakTextAsync é usado para chamar a API de fala.

  1. 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.
  2. 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.
  3. 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 .
  4. 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.
  5. 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).