आवाज गतिविधि पहचान
स्ट्रीमिंग साउंड वेव, अपने व्युत्पन्न प्रकारों जैसे कैप्चर करने योग्य साउंड वेव के साथ, आवाज गतिविधि पहचान (VAD) का समर्थन करता है। VAD आने वाले ऑडियो डेटा को फ़िल्टर करता है ताकि आंतरिक बफ़र केवल तभी भरा जाए जब आवाज का पता चलता है।
प्लगइन दो VAD कार्यान्वयन प्रदान करता है:
- डिफ़ॉल्ट VAD
- Silero VAD
डिफ़ॉल्ट कार्यान्वयन libfvad का उपयोग करता है, एक हल्की आवाज गतिविधि पहचान लाइब्रेरी जो Runtime Audio Importer द्वारा समर्थित सभी प्लेटफ़ॉर्म और इंजन संस्करणों पर कुशलतापूर्वक काम करती है।
एक एक्सटेंशन प्लगइन के रूप में उपलब्ध, Silero VAD एक न्यूरल नेटवर्क-आधारित आवाज गतिविधि डिटेक्टर है जो उच्च सटीकता प्रदान करता है, विशेष रूप से शोर वाले वातावरण में। यह भाषण को पृष्ठभूमि के शोर से अधिक विश्वसनीय रूप से अलग करने के लिए मशीन लर्निंग का उपयोग करता है।
मूल उपयोग
एक साउंड वेव बनाने के बाद VAD सक्षम करने के लिए, ToggleVAD
फ़ंक्शन का उपयोग करें:
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
StreamingSoundWave->ToggleVAD(true);
VAD को सक्षम करने के बाद, आप इसे किसी भी समय रीसेट कर सकते हैं:
- Blueprint
- C++
// Reset the VAD
StreamingSoundWave->ResetVAD();
डिफ़ॉल्ट VAD सेटिंग्स
डिफ़ॉल्ट VAD प्रदाता का उपयोग करते समय, आप VAD मोड बदलकर इसकी आक्रामकता समायोजित कर सकते हैं:
- Blueprint
- C++
// Set the VAD mode (only works with the default VAD provider)
StreamingSoundWave->SetVADMode(ERuntimeVADMode::VeryAggressive);
VAD मोड पैरामीटर ऑडियो को फ़िल्टर करने की आक्रामकता को नियंत्रित करता है। उच्च मान अधिक प्रतिबंधात्मक होते हैं, जिसका अर्थ है कि उनके गलत सकारात्मक (false positives) रिपोर्ट करने की संभावना कम होती है लेकिन वे कुछ भाषण को छ ोड़ सकते हैं।
VAD प्रदाता
ToggleVAD
फ़ंक्शन के साथ VAD सक्षम करने के बाद, आप अपनी आवश्यकताओं के अनुरूप विभिन्न वॉयस एक्टिविटी डिटेक्शन प्रदाताओं के बीच चयन कर सकते हैं। डिफ़ॉल्ट प्रदाता अंतर्निहित है, जबकि Silero VAD जैसे अतिरिक्त प्रदाता एक्सटेंशन प्लगइन्स के माध्यम से उपलब्ध हैं।
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Make sure to call ToggleVAD(true) before setting the provider
// Set the VAD provider to Silero VAD
StreamingSoundWave->SetVADProvider(URuntimeSileroVADProvider::StaticClass());
Silero VAD एक्सटेंशन
Silero VAD न्यूरल नेटवर्क क ा उपयोग करके अधिक सटीक भाषण पहचान प्रदान करता है। इसका उपयोग करने के लिए:
-
सुनिश्चित करें कि Runtime Audio Importer प्लगइन आपकी परियोजना में पहले से स्थापित है
-
UE 5.5 और पहले के लिए: Silero VAD एक्सटेंशन प्लगइन डाउनलोड करने से पहले, सुनिश्चित करें कि NNERuntimeORT आपकी परियोजना में अक्षम है। NNERuntimeORT सक्षम होने पर संघर्षों के कारण इन इंजन संस्करणों पर Silero VAD का उपयोग करते समय क्रैश हो सकता है
-
Silero VAD एक्सटेंशन प्लगइन Google Drive से डाउनलोड करें
-
डाउनलोड किए गए संग्रह से फ़ोल्डर को आपकी परियोजना के
Plugins
फ़ोल्डर में निकालें (यदि यह फ़ोल्डर मौजूद नहीं है तो इसे बनाएं) -
UE 5.6 और बाद के लिए: NNERuntimeORT निर्भरता जोड़ने के लिए
RuntimeAudioImporterSileroVAD.uplugin
फ़ाइल संपादित करें। "Plugins" फ़ील्ड में, RuntimeAudioImporter समावेशन के बाद, जोड़ें:
,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
- अपने प्रोजेक्ट को रीबिल्ड करें (इस एक्सटेंशन के लिए एक C++ प्रोजेक्ट की आवश्यकता है)
-
डिफ़ॉल्ट VAD, रनटाइम ऑडियो इम्पोर्टर द्वारा समर्थित सभी इंजन संस्करणों के साथ काम करता है (UE 4.24, 4.25, 4.26, 4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, और 5.6)
-
सिलेरो VAD, अनरियल इंजन 4.27 और सभी UE5 संस्करणों का समर्थन करता है (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, और 5.6)
-
UE 5.5 और पहले: प्लगइन कॉन्फ्लिक्ट्स के कारण क्रैश को रोकने के लिए सिलेरो VAD का उपयोग करने से पहले NNERuntimeORT को अक्षम करना होगा
-
UE 5.6+ आवश्यकता: अनरियल इंजन 5.6 से शुरू होकर, सिलेरो VAD एक्सटेंशन के लिए NNERuntimeORT प्लगइन डिपेंडेंसी को मैन्युअल रूप से
.uplugin
फ़ाइल में जोड़ना आवश्यक है -
सिलेरो VAD विंडोज, लिनक्स, मैक, एंड्रॉइड (मेटा क्वेस्ट सहित), और iOS के लिए उपलब्ध है
-
यह एक्सटेंशन सोर्स कोड के रूप में प्रदान की जाती है और उपयोग करने के लिए एक C++ प्रोजेक्ट की आवश्यकता होती है
-
प्लगइन्स को मैन्युअल रूप से बनाने के तरीके के बारे में अधिक जानकारी के लिए, बिल्डिंग प्लगइन्स ट्यूटोरियल देखें
एक बार इंस्टॉल हो जाने के बाद, आप इसे सिलेरो क्लास प्रोवाइडर के साथ SetVADProvider
फ़ंक्शन का उपयोग करके अपने VAD प्रोवाइडर के रूप में चुन सकते हैं।
स्पीच स्टार्ट और एंड डिटेक्शन
वॉयस एक्टिविटी डिटेक्शन न केवल स्पीच की उपस्थिति का पता लगाता है, बल्कि यह स्पीच एक्टिविटी की शुरुआत और अंत का पता लगाने की भी अनुमति देता है। यह प्लेबैक या कैप् चर के दौरान जब स्पीच शुरू या समाप्त होती है तो इवेंट्स को ट्रिगर करने के लिए उपयोगी है।
आप न्यूनतम स्पीच अवधि और साइलेंस अवधि जैसे पैरामीटर्स को समायोजित करके स्पीच स्टार्ट और एंड डिटेक्शन की संवेदनशीलता को अनुकूलित कर सकते हैं। ये पैरामीटर्स झूठी पॉजिटिव्स, जैसे संक्षिप्त शोर या स्पीच के बीच बहुत छोटे विराम को पकड़ने से बचने के लिए डिटेक्शन को फाइन-ट्यून करने में मदद करते हैं।
न्यूनतम स्पीच अवधि
न्यूनतम स्पीच अवधि पैरामीटर स्पीच स्टार्ट इवेंट को ट्रिगर करने के लिए आवश्यक निरंतर वॉयस एक्टिविटी की न्यूनतम मात्रा निर्धारित करता है। यह संक्षिप्त शोर को फ़िल्टर करने में मदद करता है जिन्हें स्पीच नहीं माना जाना चाहिए, यह सुनिश्चित करने के लिए कि केवल निरंतर वॉयस एक्टिविटी को पहचाना जाए। न्यूनतम स्पीच अवधि के लिए डिफ़ॉल्ट मान 300 मिलीसेकंड है।
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Set the minimum speech duration
StreamingSoundWave->SetMinimumSpeechDuration(200);
मौन अवधि
मौन अवधि पैरामीटर वाक् समाप्ति घटना को ट्रिगर करने के लिए आवश्यक मौन की अवधि निर्धारित करता है। यह शब्दों या वाक्यों के बीच प्राकृतिक विराम के दौरान वाक् पहचान के समय से पहले समाप्त होने से रोकता है। मौन अवधि के लिए डिफ़ॉल्ट मान 500 मिलीसेकंड है।
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Set the silence duration
StreamingSoundWave->SetSilenceDuration(700);
भाषण प्रतिनिधियों से बाइंडिंग
जब भाषण शुरू या समाप्त होता है तो आप विशिष्ट प्रतिनिधियों से बाइंड कर सकते हैं। यह भाषण गतिविधि के आधार पर कस्टम व्यवहार ट्रिगर करने के लिए उपयोगी है, जैसे कि पाठ मान्यता शुरू या रोकना, या अन्य ऑडियो स्रोतों की मात्रा समायोजित करना।
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Bind to the OnSpeechStartedNative delegate
StreamingSoundWave->OnSpeechStartedNative.AddWeakLambda(this, [this]()
{
// Handle the result when speech starts
});
// Bind to the OnSpeechEndedNative delegate
StreamingSoundWave->OnSpeechEndedNative.AddWeakLambda(this, [this]()
{
// Handle the result when speech ends
});
VAD प्रदाताओं की तुलना
- Default VAD
- Silero VAD
Default VAD (libfvad)
फायदे:
- हल्का और कुशल
- सभी प्लेटफार्मों पर काम करता है
- न्यूनतम संसाधन उपयोग
- मोबाइल और कम शक्ति वाले उपकरणों के लिए उपयुक्त
सबसे अच्छा किसके लिए:
- शांत वातावरण में सरल आवाज पहचान
- मोबाइल अनुप्रयोग
- ऐसे प्रोजेक्ट जहां प्रदर्शन प्राथमिकता है
- जब सार्व भौमिक प्लेटफार्म समर्थन आवश्यक है
Silero VAD
फायदे:
- आवाज का पता लगाने में उच्च सटीकता
- चुनौतीपूर्ण वातावरण में बेहतर शोर सहनशीलता
- विभिन्न वक्ताओं के बीच अधिक सुसंगत परिणाम
- सटीक नियंत्रण के लिए उन्नत कॉन्फ़िगरेशन विकल्प
सबसे अच्छा किसके लिए:
- सटीक आवाज पहचान की आवश्यकता वाले अनुप्रयोग
- पृष्ठभूमि शोर वाले वातावरण
- आवाज पहचान प्रणालियाँ
- पेशेवर ऑडियो अनुप्रयोग
Silero VAD को डिफ़ॉल्ट VAD की तुलना में अधिक कम्प्यूटेशनल संसाधनों की आवश्यकता हो सकती है।