Pular para o conteúdo principal

Como usar o plugin

O plugin Runtime Text To Speech sintetiza texto em fala usando modelos de voz baixáveis. Esses modelos são gerenciados nas configurações do plugin dentro do editor, baixados e empacotados para uso em tempo de execução. Siga os passos abaixo para começar.

Lado do editor

Baixe os modelos de voz apropriados para o seu projeto conforme descrito aqui. Você pode baixar múltiplos modelos de voz ao mesmo tempo.

Lado do runtime

Crie o sintetizador usando a função CreateRuntimeTextToSpeech. Certifique-se de manter uma referência a ele (por exemplo, como uma variável separada em Blueprints ou UPROPERTY em C++) para evitar que seja coletado como lixo.

Um exemplo de criação de um sintetizador Runtime Text To Speech em Blueprints

Sintetizando Fala

O plugin oferece dois modos de síntese de texto para fala:

  1. Texto para Fala Regular: Sintetiza o texto inteiro e retorna o áudio completo quando finalizado
  2. Texto para Fala em Streaming: Fornece chunks de áudio conforme são gerados, permitindo processamento em tempo real

Cada modo suporta dois métodos para selecionar modelos de voz:

  • Por Nome: Selecione um modelo de voz pelo seu nome (recomendado para UE 5.4+)
  • Por Objeto: Selecione um modelo de voz por referência direta (recomendado para UE 5.3 e anteriores)

Texto para Fala Regular

Por Nome

A função Text To Speech (By Name) é mais conveniente em Blueprints a partir do UE 5.4. Ela permite que você selecione modelos de voz a partir de uma lista suspensa dos modelos baixados. Em versões do UE abaixo da 5.3, esta lista suspensa não aparece, então se você estiver usando uma versão mais antiga, precisará iterar manualmente sobre o array de modelos de voz retornado por GetDownloadedVoiceModels para selecionar o que você precisa.

An example of using Text To Speech by Name in Blueprints

Por Objeto

A função Text To Speech (By Object) funciona em todas as versões do Unreal Engine, mas apresenta os modelos de voz como uma lista suspensa de referências de assets, o que é menos intuitivo. Este método é adequado para UE 5.3 e anteriores, ou se o seu projeto exigir uma referência direta a um asset de modelo de voz por qualquer motivo.

Um exemplo de uso de Text To Speech por Objeto em Blueprints

Se você baixou os modelos mas não consegue vê-los, abra a lista suspensa Voice Model, clique nas configurações (ícone de engrenagem) e habilite Show Plugin Content e Show Engine Content para tornar os modelos visíveis.

Text-to-Speech em Streaming

Para textos mais longos ou quando você deseja processar dados de áudio em tempo real à medida que são gerados, você pode usar as versões em streaming das funções Text-to-Speech:

  • Streaming Text To Speech (By Name) (StreamingTextToSpeechByName em C++)
  • Streaming Text To Speech (By Object) (StreamingTextToSpeechByObject em C++)

Essas funções fornecem dados de áudio em pedaços (chunks) conforme são gerados, permitindo o processamento imediato sem esperar pela síntese completa. Isso é útil para várias aplicações como reprodução de áudio em tempo real, visualização ao vivo ou qualquer cenário onde você precise processar dados de fala de forma incremental.

Streaming Por Nome

A função Streaming Text To Speech (By Name) funciona de forma similar à versão regular, mas fornece áudio em pedaços através do delegado On Speech Chunk.

Um exemplo de uso do Streaming Text To Speech by Name em Blueprints

Streaming Por Objeto

A função Streaming Text To Speech (By Object) fornece a mesma funcionalidade de streaming, mas recebe uma referência de objeto de modelo de voz.

Um exemplo de uso do Streaming Text To Speech por Objeto em Blueprints

Reprodução de Áudio

Para text-to-speech regular (não streaming), o delegado On Speech Result fornece o áudio sintetizado como dados PCM em formato float (como um array de bytes em Blueprints ou TArray<uint8> em C++), juntamente com a Sample Rate e Num Of Channels.

Para reprodução, é recomendado usar o plugin Runtime Audio Importer para converter os dados de áudio brutos em uma sound wave reproduzível.

Aqui está um exemplo de como os nodes de Blueprint para sintetizar texto e reproduzir o áudio podem parecer (Nodes copiáveis):

Cancelando Text-to-Speech

Você pode cancelar uma operação de síntese de texto-para-voz em andamento a qualquer momento chamando a função CancelSpeechSynthesis na sua instância do sintetizador:

Cancelando Text To Speech em Blueprints

Quando uma síntese é cancelada:

  • O processo de síntese será interrompido o mais rápido possível
  • Quaisquer callbacks em andamento serão terminados
  • O delegate de conclusão será chamado com bSuccess = false e uma mensagem de erro indicando que a síntese foi cancelada
  • Quaisquer recursos alocados para a síntese serão devidamente limpos

Isso é particularmente útil para textos longos ou quando você precisa interromper a reprodução para iniciar uma nova síntese.

Seleção de Speaker

Ambas as funções Text To Speech aceitam um parâmetro opcional de ID do speaker, o que é útil ao trabalhar com modelos de voz que suportam múltiplos speakers. Você pode usar as funções GetSpeakerCountFromVoiceModel ou GetSpeakerCountFromModelName para verificar se múltiplos speakers são suportados pelo seu modelo de voz escolhido. Se múltiplos speakers estiverem disponíveis, simplesmente especifique o ID do speaker desejado ao chamar as funções Text To Speech. Alguns modelos de voz oferecem uma variedade extensa - por exemplo, o English LibriTTS inclui mais de 900 speakers diferentes para escolher.

O plugin Runtime Audio Importer também fornece recursos adicionais como exportar dados de áudio para um arquivo, passá-los para SoundCue, MetaSound e mais. Para mais detalhes, confira a documentação do Runtime Audio Importer.