Ana içeriğe geç

Ses Etkinliği Algılama

Streaming Sound Wave, Capturable Sound Wave gibi türetilmiş türleriyle birlikte Ses Aktivite Algılama'yı (VAD) destekler. VAD, yalnızca ses algılandığında iç tamponu doldurmak için gelen ses verilerini filtreler.

Eklenti iki VAD uygulaması sunar:

Varsayılan uygulama, Runtime Audio Importer tarafından desteklenen tüm platformlarda ve motor sürümlerinde verimli bir şekilde çalışan hafif bir ses etkinliği algılama kütüphanesi olan libfvad'i kullanır.

Temel Kullanım

Bir ses dalgası oluşturduktan sonra VAD'yi etkinleştirmek için ToggleVAD işlevini kullanın:

Toggle VAD node

VAD'yi etkinleştirdikten sonra, istediğiniz zaman sıfırlayabilirsiniz:

Reset VAD node

Varsayılan VAD Ayarları

Varsayılan VAD sağlayıcısını kullanırken, VAD modunu değiştirerek agresifliğini ayarlayabilirsiniz:

Set VAD Mode node

Mod parametresi, VAD'nin sesi ne kadar agresif bir şekilde filtrelediğini kontrol eder. Daha yüksek değerler daha kısıtlayıcıdır, yani yanlış pozitif raporlama olasılıkları daha düşüktür ancak bazı konuşmaları atlayabilirler.

VAD Sağlayıcıları

ToggleVAD işleviyle VAD'yi etkinleştirdikten sonra, ihtiyaçlarınıza uygun farklı Ses Aktivitesi Algılama sağlayıcıları arasından seçim yapabilirsiniz. Varsayılan sağlayıcı yerleşik olup, Silero VAD gibi ek sağlayıcılar uzantı eklentileri aracılığıyla kullanılabilir.

Set VAD Provider node

Mevcut VAD Sağlayıcısını Alma

Bir akış ses dalgasına atanmış VAD sağlayıcısını GetVADProvider işlevini kullanarak alabilirsiniz. Bu, ayrı bir referansı etrafta tutmak zorunda kalmadan, Silero VAD'nin konuşma eşiği ayarları gibi sağlayıcıya özgü işlevselliğe erişmeniz gerektiğinde yararlıdır.

Get VAD Provider node

Sağlayıcıya özgü özelliklere erişmek için, döndürülen sağlayıcıyı istenen türe dönüştürün. Örneğin, Silero VAD'a özgü işlevselliğe ulaşmak için:

Get VAD Provider Cast To Silero node

Silero VAD Extension

Silero VAD, sinir ağları kullanarak daha doğru konuşma algılama sağlar. Onu kullanmak için:

  1. Runtime Audio Importer eklentisinin projenizde zaten kurulu olduğundan emin olun.

  2. UE 5.5 ve öncesi için: Silero VAD uzantı eklentisini indirmeden önce, projenizde NNERuntimeORT'un devre dışı olduğundan emin olun. NNERuntimeORT'un etkin olması, çakışmalar nedeniyle bu motor sürümlerinde Silero VAD kullanılırken çökmelere neden olabilir.

  3. Silero VAD uzantı eklentisini buradan indirin

  4. İndirilen arşivden klasörü projenizin Plugins klasörüne çıkarın (bu klasör mevcut değilse oluşturun).

  5. UE 5.6 ve sonrası için: RuntimeAudioImporterSileroVAD.uplugin dosyasını düzenleyerek NNERuntimeORT bağımlılığını ekleyin. "Plugins" alanında, RuntimeAudioImporter dahil edildikten sonra şunu ekleyin:

    ,
    {
    "Name": "NNERuntimeORT",
    "Enabled": true
    }
  6. Projenizi yeniden derleyin (bu eklenti bir C++ projesi gerektirir).

important
  • Varsayılan VAD, Runtime Audio Importer tarafından desteklenen tüm motor sürümleriyle (UE 4.24, 4.25, 4.26, 4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7 ve 5.8) çalışır.

  • Silero VAD, Unreal Engine 4.27 ve tüm UE5 sürümlerini (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7 ve 5.8) destekler.

  • UE 5.5 ve öncesi: NNERuntimeORT, eklenti çakışmalarından kaynaklanan çökmeleri önlemek için Silero VAD kullanılmadan önce devre dışı bırakılmalıdır. UE 5.3'te özellikle NNERuntimeORTCpu ve NNERuntimeORTGpu da devre dışı bırakılmalıdır.

  • UE 5.6+ Gereksinimi: Unreal Engine 5.6'dan itibaren, Silero VAD uzantısı, NNERuntimeORT eklenti bağımlılığının .uplugin dosyasına manuel olarak eklenmesini gerektirir.

  • Silero VAD Windows, Linux, Mac, Android (Meta Quest dahil), ve iOS için mevcuttur.

  • Bu eklenti kaynak kodu olarak sağlanır ve kullanmak için bir C++ projesi gerektirir.

  • Eklentileri manuel olarak nasıl oluşturacağınız hakkında daha fazla bilgi için Eklenti Oluşturma eğitimine bakın.

Kurulduktan sonra, Silero sınıf sağlayıcısı ile SetVADProvider işlevini kullanarak VAD sağlayıcınız olarak seçebilirsiniz.

Konuşma Eşiği

Silero VAD sağlayıcısı, bir ses parçasının konuşma olarak kabul edilmesi için gereken minimum güven puanını (sinir ağının konuşma olasılığı çıktısından) kontrol eden bir Konuşma Eşiği parametresi sunar. Bu değeri, GetVADProvider ile sağlayıcıyı alıp Silero VAD sağlayıcı türüne cast ettikten sonra kullanılabilen SetSpeechThreshold fonksiyonu ile ayarlayabilirsiniz.

Set Speech Threshold node

SetSpeechThreshold, eşik başarıyla uygulanırsa true, aksi halde false döndürür (örneğin, değer geçerli aralığın dışındaysa).

Daha yüksek bir eşik algılamayı daha temkinli hale getirir: arka plan gürültüsünden kaynaklanan yanlış pozitifleri azaltır, ancak daha sessiz veya net olmayan konuşmaları da kaçırabilir. Daha düşük bir eşik algılamayı daha hassas yapar: daha fazla konuşmayı yakalar, ancak yanlış pozitif riski artar. Varsayılan değer 0.5'tir.

Konuşma Başlangıç ve Bitiş Algılama

Ses Aktivitesi Tespiti yalnızca konuşmanın varlığını algılamakla kalmaz, aynı zamanda konuşma aktivitesinin başlangıcını ve bitişini algılamaya da olanak tanır. Bu, oynatma veya yakalama sırasında konuşma başladığında veya bittiğinde olayları tetiklemek için kullanışlıdır.

Konuşma başlangıcı ve bitişi algılamanın hassasiyetini, minimum konuşma süresi ve sessizlik süresi gibi parametreleri ayarlayarak özelleştirebilirsiniz. Bu parametreler, kısa gürültüleri veya konuşma arasındaki çok kısa duraklamaları algılama gibi yanlış pozitifleri önlemek için algılamayı ince ayar yapmaya yardımcı olur.

Minimum Konuşma Süresi

Minimum Konuşma Süresi parametresi, bir konuşma başlangıç olayını tetiklemek için gereken sürekli ses etkinliğinin minimum miktarını ayarlar. Bu, konuşma olarak değerlendirilmemesi gereken kısa gürültüleri filtrelemeye yardımcı olur ve yalnızca sürekli ses etkinliğinin tanınmasını sağlar. Minimum Konuşma Süresi için varsayılan değer 300 milisaniyedir.

Set Minimum Speech Duration node

Sessizlik Süresi

Silence Duration parametresi, bir konuşma bitiş olayını tetiklemek için gereken sessizlik süresini ayarlar. Bu, kelimeler veya cümleler arasındaki doğal duraklamalar sırasında konuşma algılamanın erken sonlanmasını engeller. Silence Duration için varsayılan değer 500 milisaniyedir.

Set Silence Duration node

Konuşma Delegelerine Bağlama

Konuşma başladığında veya sona erdiğinde belirli delegelere bağlanabilirsiniz. Bu, konuşma etkinliğine dayalı olarak özel davranış tetiklemek için kullanışlıdır; örneğin metin tanımayı başlatma veya durdurma ya da diğer ses kaynaklarının ses düzeyini ayarlama gibi.

Bind Event To On Speech Started Bind Event To On Speech Ended

VAD Sağlayıcılarını Karşılaştırma

Varsayılan VAD (libfvad)

Avantajlar:

  • Hafif ve verimli
  • Tüm platformlarda çalışır
  • Minimum kaynak kullanımı
  • Mobil ve düşük güçlü cihazlar için uygun

En uygunu:

  • Sessiz ortamlarda basit ses algılama
  • Mobil uygulamalar
  • Performansın öncelikli olduğu projeler
  • Evrensel platform desteğinin gerekli olduğu durumlarda