Konuşmadan Metne Ekle

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Konuşmadan Metne (STT), konuşma seslerinden otomatik olarak metin üreten bir teknoloji biçimidir. STT ile, oyuncuların NPC'lerle konuşmasına, belirli sesleri önceden kaydetme ihtiyacı olmadan metin üretmesine, motor veya görme kısıtlamaları olan oyuncular için erişilebilirliği artırmasına ve oyunculara envanterlerini açmak veya bir büyü yapmak gibi eylemler için ses kısayolları aracılığıyla eller serbest kontroller sağlamasına olanak tanıyarak daha sürükleyici dünyalar yaratabilirsiniz.

Gingerbread House - Start .rbxl dosyasını başlangıç noktası olarak kullanarak, bu öğretici, oyununuzda konuşmadan dinamik olarak üretilen metni nasıl ekleyeceğinizi gösterir; ayrıca oyuncunun 3D dünyanızdaki nesnelerle etkileşimde bulunabilmesi için STT'yi nasıl uygulayacağınıza dair rehberlik sağlar.

Ses nesneleri

STT sesi oluşturmak için, bu öğretici boyunca çalışacağınız ses nesnelerini anlamak önemlidir. STT için üç tür ses nesnesi vardır:

  • AudioDeviceInput nesnesi, bir dizüstü bilgisayar, telefon veya kulaklık gibi gerçek dünyadaki fiziksel bir donanım cihazıdır.
  • AudioSpeechToText nesnesi, konuşma seslerini metin dizelerine dönüştürür.
  • Wires, ses akışlarını bir nesneden diğerine taşır.

Bu ses nesnelerinin tümü, oyuncu eylemlerine yanıt olarak STT metni üretmek için birlikte çalışır. Örneğin, oyuncu bir oyun oynarken bir kulaklık takıyorsa:

  • AudioDeviceInput, oyuncunun mikrofonuna konuşarak sesini yakalar ve bir ses akışı olarak alır.
  • Bir Wire, ses akışını AudioDeviceInput'dan AudioSpeechToText'e taşır.
  • AudioSpeechToText, oyuncunun konuşmasını metne dönüştürür.
  • Oyun, bu metni okur ve ekranda konuşulan metni görüntülemek veya oyuncunun komutuyla bir kapıyı açmak gibi bir eylem gerçekleştirir.

Mikrofon kullanımını etkinleştir

Bir oyuna STT eklemeden önce, önce mikrofon kullanımını etkinleştirmeniz ve oyunu yayınlamanız gerekir.

  1. Gingerbread House - Start dosyasını Studio'da açın.
  2. Yerel bir kopya oluşturun.
  3. Oyununuzun yerel kopyasını yayınlayın.
  4. Studio'da DosyaDeneyim Ayarlarıİletişim'e gidin.
  5. Mikrofonu Etkinleştir seçeneğini açın.
  6. Değişikliklerinizi kaydedin.

Basit konuşma yakalama ekle

Gingerbread House - Start dosyanıza basit bir konuşma yakalama eklemek için:

  1. ses için en son API kullanımını etkinleştirin.

    1. Explorer penceresinde, VoiceChatService'i seçin.
    2. Properties penceresinde, UseAudioApi'yi Enabled olarak ayarlayın.
  2. Konuşulan kelimeleri yakalamanıza olanak tanıyacak temel ses nesnelerini oluşturun.

    1. Explorer penceresinde, Workspace > DialogueVolume'a gidin.
    2. DialogueVolume klasöründeki tüm nesneleri silin.
    3. DialogueVolume klasörüne aşağıdaki nesneleri ekleyin:
      • Konuşmayı yakalamak için bir AudioDeviceInput.
      • Konuşmayı metne dönüştürmek için bir AudioSpeechToText.
      • Ses cihazı girişinden STT örneğine akışı taşımak için bir Wire.
    4. AudioSpeechToText nesnesinin Properties penceresinde, Enabled durumunu açık olarak ayarlayın.
    5. Wire nesnesinin Properties penceresinde:
      1. SourceInstance'ı yeni AudioDeviceInput'ınıza ayarlayın; bu, telin bu belirli ses örneğinden ses taşımasını istediğinizi belirtir.
      2. TargetInstance'ı yeni AudioSpeechToText'inize ayarlayın; bu, telin bu belirli ses örneğine ses taşımasını istediğinizi belirtir.
  3. Ses cihazı girişinin Player özelliğini çalışma zamanında yerel oyuncuya ayarlayın. Bu, Roblox'a hangi kullanıcının mikrofonundan ses yakalayacağını söyler.

    1. Explorer penceresinde, StarterPlayer > StarterCharacterScripts'e gidin.
    2. Bir LocalScript ekleyin ve adını ListenForMagicWord olarak belirleyin.
    3. Yeni yerel script'e aşağıdaki kodu yapıştırın:
    local audioDeviceInput = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioDeviceInput')
    -- Mikrofonu yerel oyuncuya bağlar
    audioDeviceInput.Player = game.Players.LocalPlayer

Konuşma yakalamanızı test edin

Basit konuşma yakalamayı ekledikten sonra, STT uygulamanızın düzgün çalıştığından emin olmak için oyunu test edebilirsiniz. Mikrofonunuza konuşmak, AudioSpeechToText özelliğini konuşmanızın metin versiyonu ile doldurmalıdır.

Konuşma yakalamanızı test etmek için:

  1. Test > İstemciler ve Sunucular altında, Takım Testi'ni seçin.
  2. Test sunucusunu başlatmak için Başlat'a tıklayın.
  3. Yeni test sunucusunda, mikrofonunuzu açın ve birkaç kelime söyleyin.
  4. Explorer penceresinde, Workspace > DialogueVolume > AudioSpeechToText'e gidin.
  5. AudioSpeechToText'in Properties penceresinde, mikrofonunuza söylediğiniz kelimelerin Text özelliğinin değeri olarak göründüğünü doğrulayın.

STT'yi oyun ile kullanma

STT'yi oyun ile bağlamak ve oyuncu mikrofonuna "Açıl Susam Açıl" dediğinde zencefilli ev kapısını açmak için:

  1. İstemciyi sunucuya bağlamak için bir uzak olay oluşturun.

    1. Explorer penceresinde, ReplicatedStorage altında bir RemoteEvent ekleyin.
    2. Adını OpenDoor olarak belirleyin.
  2. Zencefilli ev kapısının açılmasını animasyonla göstermek için yeni bir script ekleyin.

    1. ServerScriptService altında, sunucu tarafında bir Script ekleyin.
    2. Adını DoorService olarak belirleyin.
    3. Yeni script'e aşağıdaki kodu yapıştırın:
    -- Sunucu ve istemci arasında paylaşılan depolama için ReplicatedStorage hizmetini alır
    -- Tweening sistemi için TweenService'i alır
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TweenService = game:GetService("TweenService")
    -- İstemcinin sunucudan kapıyı açmasını istemesine izin verir
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Kapıyı aşağı hareket ettirip açan animasyonu gerçekleştiren fonksiyon
    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
    -- Fonksiyonu olaya bağlar
    remoteEvent.OnServerEvent:Connect(openDoor)
  3. Kapıyı konuşmadan metne bağlayın, böylece oyuncu mikrofonuna konuştuğunda bir eylem gerçekleşir.

    1. StarterPlayer > StarterCharacterScripts'e gidin.
    2. Daha önce oluşturduğunuz ListenForMagicWord script'ini açın.
    3. Aşağıdaki satırları ekleyin:
    -- Sunucu ve istemci arasında paylaşılan depolama için ReplicatedStorage hizmetini alır
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    -- İstemcinin sunucuya ateşleyeceği RemoveEvent'i alır
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Sahne grafiğinde STT düğümünü bulur
    -- Düğümün Text özelliği konuşmayı tanıdıkça güncellenir
    local speechToText = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioSpeechToText')
    -- STT, oyuncunun "Açıl Susam Açıl" dediğini yakalarsa sunucuya kapıyı açmasını söyleyen fonksiyon
    speechToText:GetPropertyChangedSignal('Text'):Connect(function()
    local text = speechToText.Text
    if text == '' then
    return
    end
    print(text)
    if (text.find(text, 'açıl susam açıl') ~= nil) then
    remoteEvent:FireServer()
    end
    speechToText.Text = ''
    end)
  4. STT uygulamanızı test edin.

    1. Test > İstemciler ve Sunucular altında, Takım Testi'ni seçin.
    2. Test sunucusunu başlatmak için Başlat'a tıklayın.
    3. Yeni test sunucusunda, kapıya doğru yürüyün, mikrofonunuzu açın ve "Açıl Susam Açıl" deyin. Kapı açılmalı ve sizi zencefilli evin içine almalıdır.
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.