Sprach-zu-Text hinzufügen

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

Sprach-zu-Text (STT) ist eine Form von Technologie, die automatisch Text aus Sprachlauten generiert. Mit STT können Sie immersivere Welten schaffen, indem Sie es den Spielern ermöglichen, mit NPCs zu sprechen, Text ohne die Notwendigkeit vorab aufgezeichneter Audiodateien zu generieren, die Zugänglichkeit für Spieler mit motorischen oder visuellen Einschränkungen zu verbessern und den Spielern freihändige Steuerungen durch Sprachbefehle für Aktionen wie das Öffnen ihres Inventars oder das Wirken eines Zaubers zu bieten.

Anhand der Gingerbread House - Start .rbxl-Datei als Ausgangspunkt zeigt dieses Tutorial, wie Sie Text, der dynamisch aus Sprache generiert wird, zu Ihrem Spiel hinzufügen, einschließlich Anleitungen zur Implementierung von STT, damit 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 ein Mikrofon in einem Laptop, Telefon oder Headset.
  • Das AudioSpeechToText-Objekt wandelt Sprachlaute in Textzeichenfolgen um.
  • Wires übertragen Audiostreams von einem Objekt zu einem 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 ein Spiel mit seinem Laptop spielt:

  • Das AudioDeviceInput erfasst die Sprache des Spielers, wie sie in sein Mikrofon gesprochen wird und als Audiostream.
  • Ein Wire überträgt den Audiostream vom AudioDeviceInput zum AudioSpeechToText.
  • Das AudioSpeechToText wandelt die Sprache des Spielers in Text um.
  • Das Spiel 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 Spiel hinzufügen, müssen Sie zuerst die Mikrofonbenutzung aktivieren und das Spiel veröffentlichen.

  1. Öffnen Sie die Gingerbread House - Start Datei in Studio.
  2. Erstellen Sie eine lokale Kopie.
  3. Veröffentlichen Sie Ihre lokale Kopie des Spiels.
  4. Gehen Sie zurück zu Studio und navigieren Sie zu DateiErfahrungs-EinstellungenKommunikation.
  5. Aktivieren Sie Mikrofon aktivieren.
  6. Speichern Sie Ihre Änderungen.

Einfache Sprachaufnahme hinzufügen

Um eine einfache Sprachaufnahme zu Ihrer lokalen Kopie der Gingerbread House - 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, die es Ihnen ermöglichen, gesprochene Wörter aufzuzeichnen.

    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 aufzuzeichnen.
      • Ein AudioSpeechToText, um die Sprache in Text umzuwandeln.
      • Ein Wire, um den Stream vom Audio-Geräteeingang zur STT-Instanz zu übertragen.
    4. Setzen Sie im Eigenschaften-Fenster des AudioSpeechToText-Objekts den Status Aktiviert auf ein.
    5. Setzen Sie im Eigenschaften-Fenster des Wire-Objekts:
      1. Setzen Sie SourceInstance auf Ihr neues AudioDeviceInput, um anzugeben, dass Sie möchten, dass der Draht Audio von dieser spezifischen Audioinstanz überträgt.
      2. Setzen Sie 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 Audio-Geräteeingangs zur Laufzeit auf den lokalen Spieler. Dies sagt Roblox, von welchem Benutzer das Mikrofon Audio erfassen 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 eine einfache Sprachaufnahme hinzugefügt haben, können Sie das Spiel testen, um sicherzustellen, dass Ihre STT-Implementierung ordnungsgemäß funktioniert. Das Sprechen in Ihr Mikrofon sollte die AudioSpeechToText-Eigenschaft mit der Textversion Ihrer Sprache füllen.

Um Ihre Sprachaufnahme zu testen:

  1. Unter Test > Clients und Server wählen Sie Team-Test.
  2. Klicken Sie auf Start, um den Testserver zu starten.
  3. Entmutigen Sie in dem neuen Testserver Ihr Mikrofon 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 Worte, die Sie in Ihr Mikrofon gesprochen haben, als Wert der Text-Eigenschaft erschienen sind.

Verwenden Sie STT mit Gameplay

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

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

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

    1. Fügen Sie unter ServerScriptService ein serverseitiges Script ein.
    2. Benennen Sie es DoorService.
    3. Fügen Sie den folgenden Code in das neue Skript ein:
    -- Holt den ReplicatedStorage-Dienst für gemeinsamen Speicher zwischen Server und Client
    -- Holt den TweenService für das Tweening-System
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TweenService = game:GetService("TweenService")
    -- Ermöglicht es dem Client, den Server zu bitten, die Tür zu öffnen
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Funktion, die die Tür animiert, um nach unten zu bewegen und sich 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 Sprach-zu-Text, sodass eine Aktion ausgeführt wird, 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 den ReplicatedStorage-Dienst für gemeinsamen Speicher zwischen Server und Client
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    -- Holt das RemoveEvent, das der Client an den Server senden wird
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Findet den STT-Knoten im Szenengraphen
    -- 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 erfasst, dass der Spieler "Öffne Sesam" sagt
    speechToText:GetPropertyChangedSignal('Text'):Connect(function()
    local text = speechToText.Text
    if text == '' then
    return
    end
    print(text)
    if (text.find(text, 'open sesame') ~= nil) then
    remoteEvent:FireServer()
    end
    speechToText.Text = ''
    end)
  4. Testen Sie Ihre STT-Implementierung.

    1. Unter Test > Clients und Server wählen Sie Team-Test.
    2. Klicken Sie auf Start, um den Testserver zu starten.
    3. Gehen Sie im neuen Testserver zur Tür, entmutigen Sie Ihr Mikrofon und sagen Sie "Öffne Sesam". Die Tür sollte sich öffnen und Ihnen den Zugang zum Lebkuchenhaus ermöglichen.
©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.