Adicionar fala para texto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Fala para texto (STT) é uma forma de tecnologia que gera automaticamente texto a partir de sons de fala. Com o STT, você pode criar mundos mais imersivos permitindo que os jogadores falem com NPCs, gerem texto sem a necessidade de pré-gravar áudio específico, melhorem a acessibilidade para jogadores com limitações motoras ou visuais, e forneçam controles sem as mãos através de atalhos de voz para ações como abrir seu inventário ou lançar um feitiço.

Usando o arquivo Gingerbread House - Start .rbxl como ponto de partida, este tutorial mostra como adicionar texto gerado dinamicamente a partir da fala ao seu jogo, incluindo orientações sobre como implementar o STT para que o jogador possa interagir com objetos em seu mundo 3D.

Objetos de áudio

Para criar áudio STT, é importante entender os objetos de áudio com os quais você estará trabalhando ao longo deste tutorial. Existem três tipos de objetos de áudio para STT:

  • O objeto AudioDeviceInput é um dispositivo de hardware físico no mundo real, como um microfone em um laptop, telefone ou fone de ouvido.
  • O objeto AudioSpeechToText converte sons de fala em strings de texto.
  • Wires transportam streams de áudio de um objeto para outro.

Todos esses objetos de áudio trabalham juntos para gerar texto STT em resposta às ações do jogador. Por exemplo, se o jogador estiver usando um fone de ouvido enquanto joga em seu laptop:

  • O AudioDeviceInput captura a fala do jogador, conforme falada em seu microfone e como um stream de áudio.
  • Um Wire transporta o stream de áudio do AudioDeviceInput para o AudioSpeechToText.
  • O AudioSpeechToText converte a fala do jogador em texto.
  • O jogo lê esse texto e realiza uma ação, como exibir o texto falado na tela ou abrir uma porta a comando do jogador.

Habilitar uso do microfone

Antes de adicionar STT a um jogo, você deve primeiro habilitar o uso do microfone e publicar o jogo.

  1. Abra o arquivo Gingerbread House - Start no Studio.
  2. Crie uma cópia local.
  3. Publique sua cópia local do jogo.
  4. De volta ao Studio, vá para Arquivo ⟩ Configurações da Experiência ⟩ Comunicação.
  5. Ative Habilitar Microfone.
  6. Salve suas alterações.

Adicionar captura de fala simples

Para adicionar captura de fala simples à sua cópia local do arquivo Gingerbread House - Start:

  1. Habilite o uso da API mais recente para voz.

    1. Na janela Explorer, selecione o VoiceChatService.
    2. Na janela Properties, defina UseAudioApi como Enabled.
  2. Crie os objetos de áudio básicos que permitirão capturar palavras faladas.

    1. Na janela Explorer, vá para Workspace > DialogueVolume.
    2. Exclua todos os objetos dentro da pasta DialogueVolume.
    3. Insira os seguintes objetos na pasta DialogueVolume:
      • Um AudioDeviceInput para capturar a fala.
      • Um AudioSpeechToText para converter a fala em texto.
      • Um Wire para transportar o stream do dispositivo de áudio para a instância STT.
    4. Na janela Properties do objeto AudioSpeechToText, defina o estado Enabled como ligado.
    5. Na janela Properties do objeto Wire:
      1. Defina SourceInstance para seu novo AudioDeviceInput para especificar que você deseja que o fio transporte áudio desta instância de áudio específica.
      2. Defina TargetInstance para seu novo AudioSpeechToText para especificar que você deseja que o fio transporte áudio para esta instância de áudio específica.
  3. Defina a propriedade Player do dispositivo de entrada de áudio para o jogador local em tempo de execução. Isso informa ao Roblox de qual microfone de usuário capturar áudio.

    1. Na janela Explorer, vá para StarterPlayer > StarterCharacterScripts.
    2. Insira um LocalScript e nomeie-o como ListenForMagicWord.
    3. Cole o seguinte código no novo script local:
    local audioDeviceInput = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioDeviceInput')
    -- Vincula o microfone ao jogador local
    audioDeviceInput.Player = game.Players.LocalPlayer

Teste sua captura de fala

Depois de adicionar a captura de fala simples, você pode testar o jogo para garantir que sua implementação de STT funcione corretamente. Falar em seu microfone deve preencher a propriedade AudioSpeechToText com a versão em texto de sua fala.

Para testar sua captura de fala:

  1. Em Teste > Clientes e Servidores, selecione Teste em Equipe.
  2. Clique em Iniciar para iniciar o servidor de teste.
  3. No novo servidor de teste, desmute seu microfone e fale algumas palavras.
  4. Na janela Explorer, vá para Workspace > DialogueVolume > AudioSpeechToText.
  5. Na janela Properties de AudioSpeechToText, confirme que as palavras que você falou em seu microfone apareceram como o valor da propriedade Text.

Usar STT com jogabilidade

Para conectar o STT à jogabilidade e fazer a porta da casa de gengibre abrir quando o jogador disser "Abra-se, Sésamo" em seu microfone:

  1. Crie um evento remoto para conectar o cliente ao servidor.

    1. Na janela Explorer, insira um RemoteEvent sob ReplicatedStorage.
    2. Nomeie-o como OpenDoor.
  2. Adicione um novo script para animar a abertura da porta da casa de gengibre.

    1. Sob ServerScriptService, insira um Script do lado do servidor.
    2. Nomeie-o como DoorService.
    3. Cole o seguinte código no novo script:
    -- Obtém o serviço ReplicatedStorage para armazenamento compartilhado entre servidor e cliente
    -- Obtém o TweenService para o sistema de tweening
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TweenService = game:GetService("TweenService")
    -- Permite que o cliente peça ao servidor para abrir a porta
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Função que anima a porta para se mover para baixo e abrir
    local function openDoor()
    local doorPart = workspace:WaitForChild("Door")
    local tweenInfo = TweenInfo.new(2, Enum.EasingStyle.Linear)
    local tween = TweenService:Create(doorPart, tweenInfo, {Position = doorPart.Position + Vector3.new(0, -15, 0)})
    tween:Play()
    end
    -- Conecta a função ao evento
    remoteEvent.OnServerEvent:Connect(openDoor)
  3. Conecte a porta ao fala-para-texto para que uma ação aconteça quando o jogador fala em seu microfone.

    1. Vá para StarterPlayer > StarterCharacterScripts.
    2. Abra o script ListenForMagicWord que você criou anteriormente.
    3. Adicione as seguintes linhas:
    -- Obtém o serviço ReplicatedStorage para armazenamento compartilhado entre servidor e cliente
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    -- Obtém o RemoveEvent que o cliente irá disparar para o servidor
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Encontra o nó STT no gráfico de cena
    -- A propriedade Text do nó é atualizada à medida que reconhece a fala
    local speechToText = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioSpeechToText')
    -- Função que informa ao servidor para abrir a porta se o STT capturar o jogador dizendo "Abra-se, Sésamo"
    speechToText:GetPropertyChangedSignal('Text'):Connect(function()
    local text = speechToText.Text
    if text == '' then
    return
    end
    print(text)
    if (text.find(text, 'abra-se, sésamo') ~= nil) then
    remoteEvent:FireServer()
    end
    speechToText.Text = ''
    end)
  4. Teste sua implementação de STT.

    1. Em Teste > Clientes e Servidores, selecione Teste em Equipe.
    2. Clique em Iniciar para iniciar o servidor de teste.
    3. No novo servidor de teste, aproxime-se da porta, desmute seu microfone e diga "Abra-se, Sésamo". A porta deve abrir e permitir que você entre na casa de gengibre.
©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.