Orta seviye öğreticiler

Konuşmadan Metne Geçiş 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 geçiş (STT), konuşma seslerinden otomatik olarak metin üreten bir teknoloji türüdür. STT ile, oyuncuların NPC'lerle konuşmasına olanak tanıyarak, belirli sesleri önceden kaydetme gereksinimini ortadan kaldırarak metin oluşturabilir, motor veya görme kısıtlamaları olan oyuncuların erişilebilirliğini artırabilir ve oyunculara envanterlerini açmak veya bir büyü atmak gibi işlemler için ses kısayolları aracılığıyla eller serbest kontroller sağlayabilirsiniz.

Gingerbread House - Start .rbxl dosyasını başlangıç noktası olarak kullanarak, bu öğretici, oyuncunun 3D dünyanızdaki nesnelerle etkileşimde bulunabilmesi için STT uygulamanızla birlikte konuşmadan dinamik olarak üretilen metni deneyiminize nasıl ekleyeceğinizi gösterir.

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 bulunmaktadır:

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

Bu ses nesnelerinin tümü, oyuncu etkileşimlerine yanıt olarak STT metnini oluşturmak için birlikte çalışır. Örneğin, oyuncu dizüstü bilgisayarıyla bir deneyim oynarken bir kulaklık takıyorsa:

  • AudioDeviceInput, oyuncunun mikrofonuna konuşarak yaptığı konuşmayı ses akışı olarak yakalar.
  • Wire, ses akışını AudioDeviceInput'dan AudioSpeechToText'e taşır.
  • AudioSpeechToText, oyuncunun konuşmasını metne dönüştürür.
  • Deneyim bu metni okur ve oyuncunun komutuyla ekranında konuşulan metni görüntülemek veya bir kapıyı açmak gibi bir işlem gerçekleştirir.

Mikrofon kullanımını etkinleştir

Bir deneyime STT eklemeden önce, önce mikrofon kullanımını etkinleştirmeli ve deneyimi yayınlamalısınız.

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

Basit konuşma yakalamayı ekle

Gingerbread House - Start dosyasının yerel kopyasına basit konuşma yakalamayı 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 yakalamak için temel ses nesnelerini oluşturun.

    1. Explorer penceresinde, Workspace > DialogueVolume'a gidin.
    2. DialogueVolume klasörünün içindeki tüm nesneleri silin.
    3. Aşağıdaki nesneleri DialogueVolume klasörüne ekleyin:
      • Konuşmayı yakalamak için bir AudioDeviceInput.
      • Konuşmayı metne dönüştürmek için bir AudioSpeechToText.
      • Ses cihazı girdisinden STT örneğine akışı taşımak için bir Wire.
    4. AudioSpeechToText nesnesinin Properties penceresinde, Enabled durumunu aktif hale getirin.
    5. Wire nesnesinin Properties penceresinde:
      1. Akışın bu belirli ses örneğinden taşınması için SourceInstance'yi yeni AudioDeviceInput'inize ayarlayın.
      2. Akışın bu belirli ses örneğine taşınması için TargetInstance'yi yeni AudioSpeechToText'inize ayarlayın.
  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 yakalanacağını söyler.

    1. Explorer penceresinde, StarterPlayer > StarterCharacterScripts'e gidin.
    2. Bir LocalScript ekleyin ve adını ListenForMagicWord koyun.
    3. Yeni yerel scriptin içine 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 deneyimi 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 > Müşteriler ve Sunucular altında, Ekip 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ü onaylayın.

STT'yi oyun oynama ile kullanma

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

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

    1. Explorer penceresinde, ReplicatedStorage altında bir RemoteEvent ekleyin.
    2. Adını OpenDoor koyun.
  2. Zencefil evinin kapısını açılacak şekilde animasyon yapmak için yeni bir script ekleyin.

    1. ServerScriptService altında, sunucu tarafında bir Script ekleyin.
    2. Adını DoorService koyun.
    3. Yeni scriptin içine 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ı isteyebilmesi için
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Kapıyı aşağı hareket ettirip açan animasyonu tanımlayan 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 geçiş ile bağlayarak, oyuncu mikrofonuna konuştuğunda bir eylem gerçekleştirilmesini sağlayın.

    1. StarterPlayer > StarterCharacterScripts'e gidin.
    2. Daha önce oluşturduğunuz ListenForMagicWord scriptini 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")
    -- STT düğümünü sahne grafiğinde 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 yakaladığında sunucuya kapıyı açması için bildiren 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 > Müşteriler ve Sunucular altında, Ekip 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 zencefil evine 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.