मैं टॉकिंग टॉम ऐप के समान स्वचालित वॉयस रिकॉर्डिंग कार्यक्षमता को लागू करने की कोशिश कर रहा हूं। मैं निम्नलिखित कोड का उपयोग ऑडियो रिकॉर्डर से इनपुट पढ़ सकते हैं और बफर विश्लेषण करने के लिए:ऑडियो फ़ाइल इनपुट से मानव आवाज का पता लगाएं
float totalAbsValue = 0.0f;
short sample = 0;
numberOfReadBytes = audioRecorder.read(audioBuffer, 0, bufferSizeInBytes);
// Analyze Sound.
for(int i=0; i<bufferSizeInBytes; i+=2)
{
sample = (short)((audioBuffer[i]) | audioBuffer[i + 1] << 8);
totalAbsValue += Math.abs(sample)/(numberOfReadBytes/2);
}
// Analyze temp buffer.
tempFloatBuffer[tempIndex%3] = totalAbsValue;
float temp = 0.0f;
for(int i=0; i<3; ++i)
temp += tempFloatBuffer[i];
अब मैं ध्वनि इनपुट ऑडियो रिकॉर्डर से आ रही पता लगाने में सक्षम हूँ और मैं ऑडियो बफर का विश्लेषण कर सकते हैं।
बफर को एक फ्लोट वैल्यू में परिवर्तित किया जाता है और यदि यह किसी निश्चित राशि से बढ़ता है, तो यह माना जाता है कि पृष्ठभूमि में कुछ ध्वनि है और रिकॉर्डिंग शुरू हो गई है। लेकिन समस्या यह है कि ऐप प्रशंसक/एसी डक्ट ध्वनियों सहित सभी पृष्ठभूमि शोर रिकॉर्डिंग शुरू करता है।
क्या कोई भी मानव आवाज का पता लगाने के लिए बफर का विश्लेषण करने में मेरी सहायता कर सकता है? या ऑडियो रिकॉर्डर इनपुट से मानव आवाज का पता लगाने के लिए कोई और वैकल्पिक तरीका हैं?
अग्रिम धन्यवाद,
क्या आप मानव आवाज की विशेषताओं को जानते हैं जो इसे पृष्ठभूमि शोर से अलग करते हैं? – icedwater
@icedwater कोई विचार दोस्त .. – Timson
समय-निर्भर आवृत्ति विश्लेषण + एक तंत्रिका नेटवर्क चाल करना चाहिए। आखिरकार, इंसानों ने स्वाभाविक रूप से ऐसा किया है। –