Tutorials für Fortgeschrittene

Sprache-zu-Text hinzufügen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Sprache-zu-Text (STT) ist eine Form von Technologie, die automatisch Text aus Sprachgeräuschen generiert. Mit STT können Sie immersivere Welten schaffen, indem Sie es Spielern ermöglichen, mit NPCs zu sprechen, Text ohne die Notwendigkeit zu generieren, spezifisches Audio vorab aufzunehmen, die Barrierefreiheit für Spieler mit motorischen oder visuellen Einschränkungen zu verbessern und den Spielern freihändige Steuerung über Sprachverknüpfungen für Aktionen wie das Öffnen ihres Inventars oder das Wirken eines Zaubers zu ermöglichen.

Verwenden Sie die Lebkuchenhaus - Start .rbxl-Datei als Ausgangspunkt, zeigt dieses Tutorial, wie Sie Text, der dynamisch aus Sprache generiert wird, zu Ihrer Erfahrung hinzufügen können, einschließlich Anleitungen zur Implementierung von STT, sodass der Spieler mit Objekten in Ihrer 3D-Welt interagieren kann.

Audioobjekte

Um STT-Audio zu erstellen, ist es wichtig, die Audioobjekte zu verstehen, mit denen Sie während dieses Tutorials arbeiten werden. Es gibt drei Arten von Audioobjekten für STT:

  • Das AudioDeviceInput-Objekt ist ein physisches Hardwaregerät in der realen Welt, wie z. B. ein Mikrofon in einem Laptop, Telefon oder Headset.
  • Das AudioSpeechToText-Objekt wandelt Sprachgeräusche in Textzeichenfolgen um.
  • Wires übertragen Audiostreams von einem Objekt zum anderen.

Alle diese Audioobjekte arbeiten zusammen, um STT-Text als Reaktion auf Spieleraktionen zu generieren. Zum Beispiel, wenn der Spieler ein Headset trägt, während er mit seinem Laptop ein Erlebnis spielt:

  • Das AudioDeviceInput erfasst die Sprache des Spielers, wie sie in das Mikrofon gesprochen wird und als Audiostream.
  • Ein Wire überträgt den Audiostream vom AudioDeviceInput zu AudioSpeechToText.
  • Das AudioSpeechToText wandelt die Sprache des Spielers in Text um.
  • Das Erlebnis liest diesen Text und führt eine Aktion aus, wie das Anzeigen des gesprochenen Textes auf dem Bildschirm oder das Öffnen einer Tür auf Befehl des Spielers.

Mikrofonbenutzung aktivieren

Bevor Sie STT zu einem Erlebnis hinzufügen, müssen Sie zuerst die Mikrofonbenutzung aktivieren und das Erlebnis veröffentlichen.

  1. Öffnen Sie die Lebkuchenhaus - Start Datei im Studio.
  2. Erstellen Sie eine lokale Kopie.
  3. Veröffentlichen Sie Ihre lokale Kopie des Erlebnisses.
  4. Gehen Sie im Studio zu DateiErlebnis-EinstellungenKommunikation.
  5. Schalten Sie Mikrofon aktivieren ein.
  6. Speichern Sie Ihre Änderungen.

Einfache Sprachaufnahme hinzufügen

Um einfache Sprachaufnahme zu Ihrer lokalen Kopie der Lebkuchenhaus - Start Datei hinzuzufügen:

  1. Aktivieren Sie die Verwendung der neuesten API für Sprache.

    1. Wählen Sie im Explorer-Fenster den VoiceChatService aus.
    2. Setzen Sie im Eigenschaften-Fenster UseAudioApi auf Aktiviert.
  2. Erstellen Sie die grundlegenden Audioobjekte, mit denen Sie gesprochene Wörter erfassen können.

    1. Gehen Sie im Explorer-Fenster zu Workspace > DialogueVolume.
    2. Löschen Sie alle Objekte im DialogueVolume-Ordner.
    3. Fügen Sie die folgenden Objekte in den DialogueVolume-Ordner ein:
      • Ein AudioDeviceInput, um Sprache zu erfassen.
      • Ein AudioSpeechToText, um die Sprache in Text umzuwandeln.
      • Ein Wire, um den Stream vom Audioeingangsgerät zur STT-Instanz zu übertragen.
    4. Stellen Sie im Eigenschaften-Fenster des AudioSpeechToText-Objekts den Status Aktiviert auf ein.
    5. Stellen Sie im Eigenschaften-Fenster des Wire-Objekts:
      1. SourceInstance auf Ihr neues AudioDeviceInput, um anzugeben, dass Sie möchten, dass der Draht Audio von dieser spezifischen Audioinstanz überträgt.
      2. TargetInstance auf Ihr neues AudioSpeechToText, um anzugeben, dass Sie möchten, dass der Draht Audio zu dieser spezifischen Audioinstanz überträgt.
  3. Setzen Sie die Player-Eigenschaft des Audioeingangsgeräts zur Laufzeit auf den lokalen Spieler. Dies sagt Roblox, von wessen Mikrofon Audio erfasst werden soll.

    1. Gehen Sie im Explorer-Fenster zu StarterPlayer > StarterCharacterScripts.
    2. Fügen Sie ein LocalScript ein und benennen Sie es ListenForMagicWord.
    3. Fügen Sie den folgenden Code in das neue lokale Skript ein:

    local audioDeviceInput = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioDeviceInput')
    -- Bindet das Mikrofon an den lokalen Spieler
    audioDeviceInput.Player = game.Players.LocalPlayer

Testen Sie Ihre Sprachaufnahme

Nachdem Sie die einfache Sprachaufnahme hinzugefügt haben, können Sie das Erlebnis testen, um sicherzustellen, dass Ihre STT-Implementierung ordnungsgemäß funktioniert. Das Sprechen in Ihr Mikrofon sollte die AudioSpeechToText-Eigenschaft mit der Textversion Ihrer Sprache befüllen.

Um Ihre Sprachaufnahme zu testen:

  1. Unter Test > Clients und Server, wählen Sie Teamtest.
  2. Klicken Sie auf Start, um den Testserver zu starten.
  3. Schalten Sie im neuen Testserver Ihr Mikrofon stumm und sprechen Sie ein paar Worte.
  4. Gehen Sie im Explorer-Fenster zu Workspace > DialogueVolume > AudioSpeechToText.
  5. Bestätigen Sie im Eigenschaften-Fenster von AudioSpeechToText, dass die Wörter, die Sie in Ihr Mikrofon gesprochen haben, als Wert der Text-Eigenschaft erschienen sind.

STT mit Gameplay verwenden

Um STT mit dem Gameplay zu verbinden und die Tür des Lebkuchenhauses zu öffnen, wenn der Spieler "Sesam öffne dich" in sein Mikrofon sagt:

  1. Erstellen Sie ein Remote-Ereignis, um den Client mit dem Server zu verbinden.

    1. Fügen Sie im Explorer-Fenster ein RemoteEvent unter ReplicatedStorage ein.
    2. Nennen Sie es OpenDoor.
  2. Fügen Sie ein neues Skript hinzu, um das Öffnen der Tür des Lebkuchenhauses zu animieren.

    1. Unter ServerScriptService fügen Sie ein serverseitiges Script ein.
    2. Nennen Sie es DoorService.
    3. Fügen Sie den folgenden Code in das neue Skript ein:

    -- Holt sich den ReplicatedStorage-Dienst für gemeinsamen Speicher zwischen Server und Client
    -- Holt sich den TweenService für das Tweening-System
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TweenService = game:GetService("TweenService")
    -- Erlaubt dem Client, den Server zu bitten, die Tür zu öffnen
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Funktion, die die Tür animiert, nach unten zu bewegen und zu öffnen
    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
    -- Verbindet die Funktion mit dem Ereignis
    remoteEvent.OnServerEvent:Connect(openDoor)
  3. Verbinden Sie die Tür mit Sprache-zu-Text, damit eine Aktion passiert, wenn der Spieler in sein Mikrofon spricht.

    1. Gehen Sie zu StarterPlayer > StarterCharacterScripts.
    2. Öffnen Sie das ListenForMagicWord-Skript, das Sie zuvor erstellt haben.
    3. Fügen Sie die folgenden Zeilen hinzu:

    -- Holt sich den ReplicatedStorage-Dienst für gemeinsamen Speicher zwischen Server und Client
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    -- Holt sich das RemoteEvent, das der Client an den Server feuern wird
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Findet den STT-Knoten im Szenengraph
    -- Die Text-Eigenschaft des Knotens wird aktualisiert, während er Sprache erkennt
    local speechToText = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioSpeechToText')
    -- Funktion, die dem Server sagt, die Tür zu öffnen, wenn STT den Spieler erfasst, der "Sesam öffne dich" sagt
    speechToText:GetPropertyChangedSignal('Text'):Connect(function()
    local text = speechToText.Text
    if text == '' then
    return
    end
    print(text)
    if (text.find(text, 'sesam öffne dich') ~= nil) then
    remoteEvent:FireServer()
    end
    speechToText.Text = ''
    end)
  4. Testen Sie Ihre STT-Implementierung.

    1. Unter Test > Clients und Server, wählen Sie Teamtest.
    2. Klicken Sie auf Start, um den Testserver zu starten.
    3. Im neuen Testserver gehen Sie zur Tür, schalten Ihr Mikrofon stumm und sagen "Sesam öffne dich". Die Tür sollte sich öffnen und Sie ins Lebkuchenhaus lassen.
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.