ब्लैकरॉक-सीओ-कहा-बिटकॉइन-कूल्ड-रीच-न्यू-हाइट्स.जेपीजी

“ओके, गूगल!”— 2 मिनट में डीप लर्निंग के साथ पायथन में टेक्स्ट टू स्पीच

स्रोत नोड: 1866555

इस लेख के एक भाग के रूप में प्रकाशित किया गया था डेटा साइंस ब्लॉगथॉन

परिचय

आप अक्सर उपयोग कर रहे होंगे गूगल सहायक या Apple सिरी या यहाँ तक अमेज़ॅन अलेक्सा वेब पर त्वरित उत्तर खोजने के लिए या बस कुछ आदेश देने के लिए। ये AI असिस्टेंट हमारे स्पीच कमांड को समझने और वांछित कार्य करने के लिए जाने जाते हैं। वे "ओके, गूगल" जैसे स्पीच कमांड का तुरंत जवाब देते हैं। आइसलैंड की राजधानी क्या है?” या “अरे, सिरी। मुझे लसग्ना की विधि दिखाओ।” और सटीक परिणाम प्रदर्शित करें। क्या आपने कभी सोचा है कि वे वास्तव में ऐसा कैसे करते हैं? आज, हम एक बहुत ही सरल वाक् पहचान प्रणाली का निर्माण करेंगे जो हमारी आवाज़ को इनपुट के रूप में लेती है और इनपुट को सुनकर संबंधित पाठ तैयार करती है।

भाषण पाठ करने के लिए
छवि 1

टीएलडीआर मुझे कोड दिखाओ!

यदि आप मेरी तरह अधीर हैं, तो यह व्यावहारिक रूप से पूर्ण स्रोत कोड है जिसे पायथन फ़ाइल के माध्यम से जल्दी से कॉपी, पेस्ट और निष्पादित किया जा सकता है। अपने भाषण इनपुट के रूप में 'my-audio.wav' नाम की फ़ाइल रखना सुनिश्चित करें। साथ ही, सुनिश्चित करें कि आपके पास सभी लाइब्रेरी स्थापित हैं।

ट्यूटोरियल के बाद के भाग में, हम चर्चा करेंगे कि प्रत्येक पंक्ति क्या कर रही है।

यहाँ कोड है!

आयात टॉर्च आयात लिब्रोसा एनपी के रूप में सुन्न आयात करें scipy.io से एसएफ के रूप में साउंडफाइल आयात करें आईपीथॉन से wavfile आयात करें। ट्रांसफार्मर से ऑडियो आयात करें Wav2Vec2ForCTC, Wav2Vec2Tokenizer आयात करें
tokenizer = Wav2Vec2Tokenizer.from_pretrained("facebook/wav2vec2-base-960h")
model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h")
फ़ाइल_नाम = 'my-audio.wav'
डेटा = wavfile.read(फ़ाइल_नाम) फ़्रेमरेट = डेटा[0] साउंडडेटा = डेटा[1] समय = np.arange(0,len(sounddata))/फ़्रेमरेट इनपुट_ऑडियो, _ = लिब्रोसा.लोड(फ़ाइल_नाम, एसआर=16000) इनपुट_वैल्यू = टोकननाइज़र(इनपुट_ऑडियो, रिटर्न_टेंसर्स='पीटी').इनपुट_वैल्यू लॉगिट्स = मॉडल(इनपुट_वैल्यूज़).लॉगिट्स प्रेडिक्टेड_आईडी = टॉर्च.आर्ग अधिकतम(लॉगिट, मंद=-1) प्रतिलेखन = टोकननाइज़र.बैच_डीकोड(पूर्वानुमानित_आईडी)[0] प्रिंट(प्रतिलेखन)

हम शुरू करने से पहले

इस ट्यूटोरियल के पूर्ण स्रोत कोड की जाँच करना सुनिश्चित करें यह जीथब रेपो.

Wav2Vec: एक क्रांतिकारी मॉडल

वेव2वेक | पाठ से भाषण
छवि 2

हम उपयोग करेंगे वेव2वेक - फेसबुक द्वारा एक अत्याधुनिक वाक् पहचान दृष्टिकोण।

फेसबुक के शोधकर्ता इस दृष्टिकोण का वर्णन इस प्रकार करते हैं:

दुनिया भर में हजारों भाषाएं बोली जाती हैं, जिनमें से कई की कई अलग-अलग बोलियां हैं, जो उच्च गुणवत्ता वाली वाक् पहचान तकनीक के निर्माण के लिए एक बड़ी चुनौती पेश करती है। कई संभावित डोमेन (पढ़ें भाषण, टेलीफोन भाषण, आदि) में प्रत्येक बोली और प्रत्येक भाषा के लिए संसाधन प्राप्त करना संभव नहीं है। हमारा नया मॉडल, wav2vec 2.0, कई और भाषाओं, बोलियों और डोमेन के लिए वाक् पहचान प्रणाली को सक्षम करने के लिए बिना लेबल वाले प्रशिक्षण डेटा से सीखकर सीमाओं को आगे बढ़ाने के लिए स्व-पर्यवेक्षण का उपयोग करता है। केवल एक घंटे के लेबल प्रशिक्षण डेटा के साथ, wav2vec 2.0, लिब्रिस्पीच बेंचमार्क के 100-घंटे के सबसेट पर कला की पिछली स्थिति से बेहतर प्रदर्शन करता है - 100 गुना कम लेबल वाले डेटा का उपयोग करके।

तुम वहाँ जाओ! Wav2Vec एक स्व-पर्यवेक्षित मॉडल है जिसका लक्ष्य कई भाषाओं और बोलियों के लिए वाक् पहचान प्रणाली बनाना है। बहुत कम प्रशिक्षण डेटा (लगभग 100 गुना कम लेबल) के साथ, मॉडल पिछले अत्याधुनिक बेंचमार्क से बेहतर प्रदर्शन करने में सक्षम है।

यह मॉडल, BERT की तरह, नकाबपोश ऑडियो सेगमेंट के लिए भाषण इकाइयों की भविष्यवाणी करके प्रशिक्षित किया जाता है। दूसरी ओर, भाषण ऑडियो एक सतत संकेत है जो रिकॉर्डिंग की कई विशेषताओं को शब्दों या अन्य इकाइयों में स्पष्ट रूप से विभाजित किए बिना कैप्चर करता है। Wav2vec 2.0 उच्च-स्तरीय प्रासंगिक अभ्यावेदन सीखने के लिए 25ms की बुनियादी इकाइयों को सीखकर इस समस्या का समाधान करता है। फिर इन इकाइयों का उपयोग बोली जाने वाली ऑडियो रिकॉर्डिंग की एक विस्तृत श्रृंखला को चित्रित करने के लिए किया जाता है, जिससे wav2vec की मजबूती बढ़ती है। 100x कम लेबल वाले प्रशिक्षण डेटा के साथ, हम ध्वनि पहचान एल्गोरिदम बना सकते हैं जो सर्वोत्तम-अर्धपर्यवेक्षित दृष्टिकोण से बेहतर है। स्व-पर्यवेक्षित शिक्षण के लिए धन्यवाद, Wav2vec 2.0 मशीन लर्निंग मॉडल का हिस्सा है जो लेबल किए गए इनपुट पर कम निर्भर करता है। स्व-पर्यवेक्षण ने छवि वर्गीकरण, वीडियो समझ और सामग्री समझ प्रणालियों की प्रगति में सहायता की है। एल्गोरिथ्म विभिन्न भाषाओं, बोलियों और डोमेन के साथ-साथ वर्तमान प्रणालियों के लिए भाषण प्रौद्योगिकी में प्रगति का कारण बन सकता है।

अपना परिवेश और पुस्तकालय चुनना

हम उपयोग करेंगे पायटॉर्च, इस ऑपरेशन के लिए एक ओपन-सोर्स मशीन लर्निंग फ्रेमवर्क। इसी तरह हम प्रयोग करेंगे ट्रान्सफ़ॉर्मरद्वारा एक अत्याधुनिक प्राकृतिक भाषा प्रसंस्करण पुस्तकालय गले लगना.

नीचे उन सभी आवश्यकताओं की सूची दी गई है जिन्हें आप पिप के माध्यम से स्थापित करना चाहते हैं। यह अनुशंसा की जाती है कि आप इन सभी पैकेजों को एक के अंदर स्थापित करें आभासी वातावरण प्रारंभ करने से पहले।

  1. जुपीटर नोटबुक
  2. टॉर्च
  3. लिब्रोसा
  4. ऊँचा होना
  5. साउंडफ़ाइल
  6. SciPy
  7. आईपीथन
  8. ट्रान्सफ़ॉर्मर

कोड के साथ कार्य करना

वर्चुअल वातावरण को सक्रिय करते हुए अपनी ज्यूपिटर नोटबुक खोलें जिसमें ऊपर उल्लिखित सभी आवश्यक लाइब्रेरी शामिल हैं।

एक बार नोटबुक लोड हो जाने पर, एक नई फ़ाइल बनाएं और लाइब्रेरीज़ को आयात करना शुरू करें।

आयात टॉर्च आयात लिब्रोसा एनपी के रूप में सुन्न आयात करें scipy.io से एसएफ के रूप में साउंडफाइल आयात करें आईपीथॉन से wavfile आयात करें। ट्रांसफार्मर से ऑडियो आयात करें Wav2Vec2ForCTC, Wav2Vec2Tokenizer आयात करें

अब जब हमने सभी लाइब्रेरीज़ को सफलतापूर्वक आयात कर लिया है, तो आइए अपना टोकननाइज़र और मॉडल लोड करें। इस उदाहरण के लिए हम पूर्व-प्रशिक्षित मॉडल का उपयोग करेंगे। पूर्व-प्रशिक्षित मॉडल एक ऐसा मॉडल है जिसे पहले ही किसी अन्य व्यक्ति द्वारा प्रशिक्षित किया जा चुका है जिसे हम अपने सिस्टम में पुन: उपयोग कर सकते हैं। जिस मॉडल को हम आयात करने जा रहे हैं वह फेसबुक द्वारा प्रशिक्षित है।

tokenizer = Wav2Vec2Tokenizer.from_pretrained("facebook/wav2vec2-base-960h")
model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h")

इसे डाउनलोड होने में कुछ समय लग सकता है.

एक बार हो जाने के बाद, आप अपनी आवाज़ रिकॉर्ड कर सकते हैं और जिस फ़ाइल में आप अपना कोड लिख रहे हैं उसके ठीक बगल में wav फ़ाइल को सहेज सकते हैं। आप अपने ऑडियो को "my-audio.wav" नाम दे सकते हैं।

फ़ाइल_नाम = 'my-audio.wav' ऑडियो(फ़ाइल_नाम)

इस कोड की मदद से आप अपना ऑडियो ज्यूपिटर नोटबुक में चला सकते हैं।

अगला: हम अपनी ऑडियो फ़ाइल लोड करेंगे और अपनी नमूना दर और कुल समय की जाँच करेंगे।

डेटा = wavfile.read(फ़ाइल_नाम) फ़्रेमरेट = डेटा[0] साउंडडेटा = डेटा[1] समय = np.arange(0,लेन(साउंडडेटा))/फ़्रेमरेट प्रिंट('सैंपलिंग दर:',फ़्रेमरेट,'हर्ट्ज')

इस उदाहरण का परिणाम आपसे भिन्न होगा क्योंकि आप अपने स्वयं के ऑडियो का उपयोग कर रहे होंगे।

नमूनाकरण दर: 44100 हर्ट्ज

यह मेरे नमूना ऑडियो के लिए मुद्रित है।

हमें नमूना दर को 16000 हर्ट्ज में परिवर्तित करना होगा क्योंकि फेसबुक का मॉडल इस सीमा पर नमूना दर स्वीकार करता है। हम लिब्रोसा से मदद लेंगे, एक लाइब्रेरी जिसे हमने पहले स्थापित किया था।

इनपुट_ऑडियो, _ = लिब्रोसा.लोड(फ़ाइल_नाम, एसआर=16000)

अंत में, इनपुट ऑडियो को टोकननाइज़र को फीड किया जाता है जिसे बाद में मॉडल द्वारा संसाधित किया जाता है। अंतिम परिणाम प्रतिलेखन चर में संग्रहीत किया जाएगा।

इनपुट_वैल्यू = टोकननाइजर(इनपुट_ऑडियो, रिटर्न_टेंसर्स='पीटी')।इनपुट_वैल्यू लॉगिट = मॉडल(इनपुट_वैल्यू).लॉगिट्स प्रेडिक्टेड_आईडी = टॉर्च.आर्गमैक्स(लॉगिट्स, डिम=-1) ट्रांसक्रिप्शन = टोकननाइजर.बैच_डीकोड(प्रीडिक्टेड_आईडी)[0] प्रिंट(ट्रांसक्रिप्शन)

उत्पादन:

'गहन शिक्षा अद्भुत है'

खैर, यह वही है जो मैंने my-audio.wav फ़ाइल में रिकॉर्ड किया था।

आगे बढ़ें और अपना भाषण रिकॉर्ड करने का प्रयास करें और कोड के अंतिम ब्लॉक को फिर से निष्पादित करें। इसे कुछ ही सेकंड में काम करना चाहिए.

के बारे में लेखक:

नमस्ते! मेरा नाम आकाश है और मैं 4 साल से अधिक समय से पायथन डेवलपर के रूप में काम कर रहा हूं। अपने करियर के दौरान, मैंने नेपाल की सबसे बड़ी जॉब पोर्टल साइट पर एक जूनियर पायथन डेवलपर के रूप में शुरुआत की, मेरोजॉब. बाद में, मैं नेपाल की पहली राइड-शेयरिंग कंपनी में डेटा साइंस और रिसर्च में शामिल हुआ, तुरही की आवाज़. वर्तमान में, मैं Django के साथ डेटा साइंस के साथ-साथ वेब डेवलपमेंट में सक्रिय रूप से शामिल रहा हूं।

आप मेरी अन्य परियोजनाओं को यहां देख सकते हैं:

https://github.com/akashadhikari

मुझे लिंक्डइन पर कनेक्ट करें

https://www.linkedin.com/in/akashadh/

ईमेल [ईमेल संरक्षित] | [ईमेल संरक्षित]

वेबसाइट (डेटा साइंस ब्लॉग पर काम कर रही है): https://akashadibari.github.io/

छवि के सूत्रों:

छवि 1 - https://www.bullfrag.com/how-to-program-google-assistant-commands-type-ok-google-turn-off-the-lights-in-10-मिनट/

छवि 2 - https://www.bullfrag.com/how-to-program-google-assistant-commands-type-ok-google-turn-off-the-lights-in-10-मिनट/

अंतिम नोट्स:

पढ़ने के लिए धन्यवाद!

मुझे आशा है कि आपको लेख पढ़कर अच्छा लगा होगा। अगर आपको यह उपयोगी लगा हो तो कृपया इसे अपने दोस्तों के बीच सोशल मीडिया पर भी शेयर करें। किसी भी प्रश्न, सुझाव, रचनात्मक आलोचना या किसी अन्य चर्चा के लिए, कृपया मुझे यहां टिप्पणियों में पिंग करें या आप सीधे ईमेल के माध्यम से मुझ तक पहुंच सकते हैं।

स्रोत: https://www.analyticsvidya.com/blog/2021/09/ok-google-speech-to-text-in-python-with-dep-learning-in-2-मिनट/

समय टिकट:

से अधिक एनालिटिक्स विधा