Aggiungi il riconoscimento vocale

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Riconoscimento vocale (STT) è una forma di tecnologia che genera automaticamente testo dai suoni della voce. Con STT, puoi creare mondi più immersivi consentendo ai giocatori di parlare con gli NPC, generare testo senza la necessità di registrare audio specifico in anticipo, migliorare l'accessibilità per i giocatori con limitazioni motorie o visive e fornire ai giocatori controlli a mani libere attraverso scorciatoie vocali per azioni come aprire il loro inventario o lanciare un incantesimo.

Utilizzando il file Gingerbread House - Start .rbxl come punto di partenza, questo tutorial ti mostra come aggiungere testo generato dinamicamente dalla voce al tuo gioco, inclusa la guida su come implementare STT in modo che il giocatore possa interagire con gli oggetti nel tuo mondo 3D.

Oggetti audio

Per creare audio STT, è importante comprendere gli oggetti audio con cui lavorerai durante questo tutorial. Ci sono tre tipi di oggetti audio per STT:

  • L'oggetto AudioDeviceInput è un dispositivo hardware fisico nel mondo reale, come un microfono in un laptop, telefono o cuffie.
  • L'oggetto AudioSpeechToText converte i suoni della voce in stringhe di testo.
  • Wires trasportano flussi audio da un oggetto all'altro.

Tutti questi oggetti audio lavorano insieme per generare testo STT in risposta alle azioni del giocatore. Ad esempio, se il giocatore indossa delle cuffie mentre gioca con il laptop:

  • L'AudioDeviceInput cattura il discorso del giocatore, come pronunciato nel microfono e come flusso audio.
  • Un Wire trasporta il flusso audio dall'AudioDeviceInput all'AudioSpeechToText.
  • L'AudioSpeechToText converte il discorso del giocatore in testo.
  • Il gioco legge questo testo e compie un'azione, come visualizzare il testo pronunciato sullo schermo o aprire una porta su comando del giocatore.

Abilitare l'uso del microfono

Prima di aggiungere STT a un gioco, devi prima abilitare l'uso del microfono e pubblicare il gioco.

  1. Apri il file Gingerbread House - Start in Studio.
  2. Crea una copia locale.
  3. Pubblica la tua copia locale del gioco.
  4. Torna in Studio, vai su FileImpostazioni esperienzaComunicazione.
  5. Attiva Abilita microfono.
  6. Salva le tue modifiche.

Aggiungi cattura vocale semplice

Per aggiungere una cattura vocale semplice alla tua copia locale del file Gingerbread House - Start:

  1. Abilita l'uso dell'API più recente per la voce.

    1. Nella finestra Explorer, seleziona il VoiceChatService.
    2. Nella finestra Properties, imposta UseAudioApi su Enabled.
  2. Crea gli oggetti audio di base che ti permetteranno di catturare le parole pronunciate.

    1. Nella finestra Explorer, vai su Workspace > DialogueVolume.
    2. Elimina tutti gli oggetti all'interno della cartella DialogueVolume.
    3. Inserisci i seguenti oggetti nella cartella DialogueVolume:
      • Un AudioDeviceInput per catturare il discorso.
      • Un AudioSpeechToText per convertire il discorso in testo.
      • Un Wire per trasportare il flusso dall'input del dispositivo audio all'istanza STT.
    4. Nella finestra Properties dell'oggetto AudioSpeechToText, imposta lo stato Enabled su attivo.
    5. Nella finestra Properties dell'oggetto Wire:
      1. Imposta SourceInstance sul tuo nuovo AudioDeviceInput per specificare che desideri che il wire trasporti audio da questa specifica istanza audio.
      2. Imposta TargetInstance sul tuo nuovo AudioSpeechToText per specificare che desideri che il wire trasporti audio a questa specifica istanza audio.
  3. Imposta la proprietà Player dell'input del dispositivo audio sul giocatore locale durante l'esecuzione. Questo dice a Roblox da quale microfono dell'utente catturare l'audio.

    1. Nella finestra Explorer, vai su StarterPlayer > StarterCharacterScripts.
    2. Inserisci uno LocalScript e chiamalo ListenForMagicWord.
    3. Incolla il seguente codice nel nuovo script locale:
    local audioDeviceInput = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioDeviceInput')
    -- Collega il microfono al giocatore locale
    audioDeviceInput.Player = game.Players.LocalPlayer

Testa la tua cattura vocale

Dopo aver aggiunto la cattura vocale semplice, puoi testare il gioco per assicurarti che la tua implementazione STT funzioni correttamente. Parlando nel tuo microfono, dovrebbe popolare la proprietà AudioSpeechToText con la versione testuale del tuo discorso.

Per testare la tua cattura vocale:

  1. Sotto Test > Clienti e Server, seleziona Team Test.
  2. Clicca su Start per avviare il server di test.
  3. Nel nuovo server di test, disattiva l'audio del microfono e pronuncia alcune parole.
  4. Nella finestra Explorer, vai su Workspace > DialogueVolume > AudioSpeechToText.
  5. Nella finestra Properties di AudioSpeechToText, conferma che le parole pronunciate nel tuo microfono siano apparse come valore della proprietà Text.

Usa STT con il gameplay

Per collegare STT al gameplay e far aprire la porta della casa di pan di zenzero quando il giocatore dice "Apri Sesamo" nel microfono:

  1. Crea un evento remoto per collegare il client al server.

    1. Nella finestra Explorer, inserisci un RemoteEvent sotto ReplicatedStorage.
    2. Chiamalo OpenDoor.
  2. Aggiungi un nuovo script per animare l'apertura della porta della casa di pan di zenzero.

    1. Sotto ServerScriptService, inserisci uno script lato server Script.
    2. Chiamalo DoorService.
    3. Incolla il seguente codice nel nuovo script:
    -- Ottiene il servizio ReplicatedStorage per lo storage condiviso tra server e client
    -- Ottiene il TweenService per il sistema di tweening
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TweenService = game:GetService("TweenService")
    -- Permette al client di chiedere al server di aprire la porta
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Funzione che anima la porta per muoversi verso il basso e aprirsi
    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
    -- Collega la funzione all'evento
    remoteEvent.OnServerEvent:Connect(openDoor)
  3. Collega la porta al riconoscimento vocale in modo che un'azione avvenga quando il giocatore parla nel microfono.

    1. Vai su StarterPlayer > StarterCharacterScripts.
    2. Apri lo script ListenForMagicWord che hai creato in precedenza.
    3. Aggiungi le seguenti righe:
    -- Ottiene il servizio ReplicatedStorage per lo storage condiviso tra server e client
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    -- Ottiene l'evento remoto che il client attiverà sul server
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Trova il nodo STT nel grafo della scena
    -- La proprietà Text del nodo si aggiorna mentre riconosce il discorso
    local speechToText = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioSpeechToText')
    -- Funzione che dice al server di aprire la porta se STT cattura il giocatore che dice "Apri Sesamo"
    speechToText:GetPropertyChangedSignal('Text'):Connect(function()
    local text = speechToText.Text
    if text == '' then
    return
    end
    print(text)
    if (text.find(text, 'apri sesamo') ~= nil) then
    remoteEvent:FireServer()
    end
    speechToText.Text = ''
    end)
  4. Testa la tua implementazione STT.

    1. Sotto Test > Clienti e Server, seleziona Team Test.
    2. Clicca su Start per avviare il server di test.
    3. Nel nuovo server di test, avvicinati alla porta, disattiva l'audio del microfono e dì "Apri Sesamo". La porta dovrebbe aprirsi e permetterti di entrare nella casa di pan di zenzero.
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.