Tutoriais intermediários

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 STT, você pode criar mundos mais imersivos permitindo que os jogadores conversem com NPCs, gere texto sem a necessidade de pré-gravar áudios específicos, melhore a acessibilidade para jogadores com limitações motoras ou de visão e forneça 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 à sua experiência, incluindo orientações sobre como implementar 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ê trabalhará 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 headset.
  • 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 headset enquanto joga uma experiência 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.
  • A experiência lê esse texto e realiza uma ação, como exibir o texto falado na tela ou abrir uma porta a comando do jogador.

Habilitar o uso do microfone

Antes de adicionar STT a uma experiência, você deve primeiro habilitar o uso do microfone e publicar a experiência.

  1. Abra o arquivo Gingerbread House - Start no Studio.
  2. Crie uma cópia local.
  3. Publique sua cópia local da experiência.
  4. De volta ao Studio, vá para ArquivoConfigurações da ExperiênciaComunicaçã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. Ative 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 ativado.
    5. Na janela Properties do objeto Wire:
      1. Defina SourceInstance para o seu novo AudioDeviceInput para especificar que você deseja que o fio transporte áudio desta instância de áudio específica.
      2. Defina TargetInstance para o 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 da entrada do dispositivo 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')
    -- Liga o microfone ao jogador local
    audioDeviceInput.Player = game.Players.LocalPlayer

Teste sua captura de fala

Depois de adicionar captura de fala simples, você pode testar a experiência 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 do AudioSpeechToText, confirme que as palavras que você falou em seu microfone apareceram como o valor da propriedade Text.

Usar STT com a 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. Em 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 falar 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 RemoteEvent que o cliente enviará 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.