Ana içeriğe geç

Eklentiyi nasıl kullanırsınız

Runtime Text To Speech eklentisi, indirilebilir ses modellerini kullanarak metni sese dönüştürür. Bu modeller, editör içindeki eklenti ayarlarında yönetilir, indirilir ve runtime kullanımı için paketlenir. Başlamak için aşağıdaki adımları izleyin.

Editör tarafı

Projeniz için uygun ses modellerini burada açıklandığı gibi indirin. Aynı anda birden fazla ses modeli indirebilirsiniz.

Runtime tarafı

Sentezleyiciyi CreateRuntimeTextToSpeech fonksiyonunu kullanarak oluşturun. Çöp toplama (garbage collection) tarafından silinmesini önlemek için ona bir referans tuttuğunuzdan emin olun (örneğin Blueprints'te ayrı bir değişken olarak veya C++'ta UPROPERTY ile).

Blueprint'te bir Runtime Text To Speech sentezleyici oluşturma örneği

Konuşma Sentezleme

Eklenti, iki metinden-konuşmaya sentezleme modu sunar:

  1. Düzenli Metinden-Konuşmaya: Tüm metni sentezler ve tamamlandığında sesi döndürür
  2. Akışlı Metinden-Konuşmaya: Ses parçalarını oluşturuldukça sağlar, gerçek zamanlı işleme imkanı tanır

Her mod, ses modellerini seçmek için iki yöntem destekler:

  • İsimle: Bir ses modelini ismiyle seçin (UE 5.4+ için önerilir)
  • Nesneyle: Bir ses modelini doğrudan referansla seçin (UE 5.3 ve öncesi için önerilir)

Düzenli Metinden-Konuşmaya

İsimle

Text To Speech (By Name) fonksiyonu, UE 5.4'ten itibaren Blueprint'lerde daha kullanışlıdır. İndirilen modellerin bir açılır listesinden ses modelleri seçmenize olanak tanır. UE 5.3 ve altı sürümlerde, bu açılır liste görünmez, bu nedenle daha eski bir sürüm kullanıyorsanız, ihtiyacınız olanı seçmek için GetDownloadedVoiceModels tarafından döndürülen ses modelleri dizisini manuel olarak döngüye almanız gerekir.

Blueprint'lerde İsimle Text To Speech kullanımı örneği

Nesne İle

Text To Speech (By Object) fonksiyonu Unreal Engine'in tüm sürümlerinde çalışır ancak ses modellerini bir varlık referansları açılır listesi olarak sunar, bu daha az sezgiseldir. Bu yöntem UE 5.3 ve önceki sürümler için uygundur veya projeniz herhangi bir nedenle doğrudan bir ses modeli varlığına referans gerektiriyorsa.

Blueprint'lerde Nesne ile Metinden Sese kullanımına bir örnek

Modelleri indirdiyseniz ancak göremiyorsanız, Voice Model açılır listesini açın, ayarlar (dişli çark simgesi) seçeneğine tıklayın ve hem Show Plugin Content hem de Show Engine Content seçeneklerini etkinleştirerek modelleri görünür hale getirin.

Akışlı Metinden Sese

Daha uzun metinler için veya ses verilerini oluşturulduğu gibi gerçek zamanlı olarak işlemek istediğinizde, Metinden Sese fonksiyonlarının akışlı sürümlerini kullanabilirsiniz:

  • Streaming Text To Speech (By Name) (C++'da StreamingTextToSpeechByName)
  • Streaming Text To Speech (By Object) (C++'da StreamingTextToSpeechByObject)

Bu fonksiyonlar, ses verilerini oluşturuldukları gibi parçalar halinde sağlar, böylece tüm sentezin tamamlanmasını beklemeden hemen işleme olanağı tanır. Bu, gerçek zamanlı ses oynatma, canlı görselleştirme veya konuşma verilerini artımlı olarak işlemeniz gereken herhangi bir senaryo gibi çeşitli uygulamalar için kullanışlıdır.

İsimle Akış

Streaming Text To Speech (By Name) fonksiyonu, normal sürümle benzer şekilde çalışır ancak sesi On Speech Chunk temsilcisi aracılığıyla parçalar halinde sağlar.

Blueprint'lerde İsimle Akışlı Metinden Sese kullanımına bir örnek

Nesneye Göre Akış

Streaming Text To Speech (By Object) işlevi aynı akış işlevselliğini sağlar ancak bir ses modeli nesne referansı alır.

Blueprint'lerde Nesneye Göre Akış Metinden Sese kullanımına bir örnek

Ses Oynatma

Düzenli (akışsız) metinden sese için, On Speech Result temsilcisi, sentezlenmiş sesi PCM verisi olarak float formatında (Blueprint'lerde bir byte dizisi veya C++'da TArray<uint8> olarak), Sample Rate ve Num Of Channels ile birlikte sağlar.

Oynatma için, ham ses verisini oynatılabilir bir ses dalgasına dönüştürmek üzere Runtime Audio Importer eklentisini kullanmanız önerilir.

Metni sentezleme ve sesi oynatma için Blueprint düğümlerinin nasıl görünebileceğine dair bir örnek (Kopyalanabilir düğümler):

Metin Okumayı İptal Etme

Devam eden bir metin okuma sentezleme işlemini, sentezleyici örneğinizdeki CancelSpeechSynthesis fonksiyonunu çağırarak istediğiniz zaman iptal edebilirsiniz:

Blueprint&#39;lerde Metin Okumayı İptal Etme

Bir sentez iptal edildiğinde:

  • Sentez işlemi mümkün olan en kısa sürede durdurulacaktır
  • Devam eden tüm geri çağrılar sonlandırılacaktır
  • Tamamlama temsilcisi, bSuccess = false ve sentezin iptal edildiğini belirten bir hata mesajı ile çağrılacaktır
  • Sentez için ayrılan tüm kaynaklar uygun şekilde temizlenecektir

Bu, özellikle uzun metinler için veya yeni bir sentez başlatmak için oynatmayı kesmek gerektiğinde oldukça kullanışlıdır.

Konuşmacı Seçimi

Her iki Metinden Sese dönüştürme işlevi, isteğe bağlı bir konuşmacı ID parametresi kabul eder; bu, birden fazla konuşmacıyı destekleyen ses modelleriyle çalışırken kullanışlıdır. Seçtiğiniz ses modelinin birden fazla konuşmacıyı destekleyip desteklemediğini kontrol etmek için GetSpeakerCountFromVoiceModel veya GetSpeakerCountFromModelName işlevlerini kullanabilirsiniz. Birden fazla konuşmacı mevcutsa, Metinden Sese dönüştürme işlevlerini çağırırken istediğiniz konuşmacı ID'sini belirtmeniz yeterlidir. Bazı ses modelleri kapsamlı çeşitlilik sunar - örneğin, English LibriTTS seçilebilecek 900'den fazla farklı konuşmacı içerir.

Runtime Audio Importer eklentisi ayrıca ses verilerini bir dosyaya aktarma, SoundCue, MetaSound ve daha fazlasına iletme gibi ek özellikler sağlar. Daha fazla ayrıntı için Runtime Audio Importer belgelerine göz atın.