रास्पबेरी पाई पर भाषण प्रसंस्करण


43

मैं विशिष्ट लोगों (कुछ विशिष्ट पहचान जैसी) का पता लगाने के लिए रास्पबेरी पाई पर भाषण प्रसंस्करण करना चाहता हूं।

मैं इसके लिए केवल ऑन-बोर्ड प्रोसेसर का उपयोग करना पसंद करूंगा, आप यह मान सकते हैं कि इंटरनेट सुलभ नहीं है।

इसके अलावा, रास्पबेरी पाई प्रदर्शन भाषण प्रसंस्करण के साथ सीमाएं क्या हैं? अगर मैं इसे एक स्वचालित उपस्थिति मशीन के रूप में उपयोग करना चाहता हूं, तो मुझे कैसे आगे बढ़ना चाहिए?


4
आप किस तरह के "स्पीच प्रोसेसिंग" की बात कर रहे हैं: पहले से रिकॉर्ड किए गए स्पीच सैंपल्स की मान्यता (फिर आप मूल, यानी पूर्व निर्धारित और टेस्ट स्पीच फाइल के बीच किसी प्रकार के समानता सूचकांक का उपयोग कर सकते हैं) या "रियल" स्पीच रिकग्निशन (भारी हो सकता है) सीपीयू वास्तविक समय में गहन, विशेष रूप से कुछ भाषाओं और अच्छी मान्यता दर के लिए)?
टॉमीएल

जवाबों:


61

यह मुख्य परियोजना है मेरा रास्पबेरी पाई अभी के लिए समर्पित है, इसलिए मुझे लगता है कि मैं अपने दो सेंट जोड़ सकता हूं। ध्यान रखें कि यह परियोजना अभी भी बहुत प्रगति पर है।

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

स्थापना निर्देशों के लिए, मुझे लगता है कि आपके पास पूरी तरह से अद्यतित प्रणाली होगी


वाक् पहचान

यहां भाषण पहचान इंजन के लिए कुछ विकल्प दिए गए हैं :

  1. पॉकेट्सफिंक्स - स्फिंक्स का एक संस्करण जिसका उपयोग एम्बेडेड सिस्टम (उदाहरण के लिए, एआरएम प्रोसेसर पर आधारित) में किया जा सकता है।

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

    • विपक्ष : शुरुआती लोगों के लिए इसे स्थापित करना और समझना जटिल है। मेरे लिए, यह मेरे आवेदन के लिए बहुत गलत था। सभी प्रसंस्करण रास्पबेरी पाई पर होता है, जिससे यह थोड़ा धीमा हो जाता है।

    • स्थापना निर्देश :

      1. Sphinxbase और Pocketsphinx के नवीनतम स्थिर संस्करण डाउनलोड करें :

        $ wget http://sourceforge.net/projects/cmusphinx/files/sphinxbase/0.8/sphinxbase-0.8.tar.gz
        $ wget http://sourceforge.net/projects/cmusphinx/files/pocketsphinx/0.8/pocketsphinx-0.8.tar.gz
        
      2. डाउनलोड की गई फ़ाइलें निकालें:

        $ tar -zxvf pocketsphinx-0.8.tar.gz; rm -rf pocketsphinx-0.8.tar.gz
        $ tar -zxvf sphinxbase-0.8.tar.gz; rm -rf sphinxbase-0.8.tar.gz
        
      3. इन पैकेजों को संकलित करने के लिए, आपको बायसन और ALSA विकास शीर्षलेख स्थापित करने होंगे ।

        नोट : यह महत्वपूर्ण है कि Sphinxbase बनाने से पहले ALSA हेडर स्थापित किया जाए। अन्यथा, स्फिंक्सबेस ALSA का उपयोग नहीं करेगा। यह भी प्रतीत होता है कि अगर पल्सएडियो स्थापित है (मेरे जैसे डेवलपर्स के लिए एक बुरी बात) तो एएलएसए का उपयोग नहीं किया जाएगा ।

        $ sudo apt-get install bison libasound2-dev
        
      4. cd स्फिंक्सबेस डायरेक्टरी में और निम्न कमांड टाइप करें:

        $ ./configure --enable-fixed
        $ sudo make
        $ sudo make install
        
      5. cd पॉकेटफिनिक्स निर्देशिका में और निम्न कमांड टाइप करें:

        $ ./configure
        $ sudo make
        $ sudo make install
        
      6. पॉकेटफिनिक्स को चलाकर टेस्ट करें:

        $ src/programs/pocketsphinx_continuous -samprate 48000 
        

        यदि आप इसे ट्वीक करना चाहते हैं, तो मैं आपको CMUSphinx Wiki पर कुछ जानकारी पढ़ने की सलाह देता हूं ।

  2. libsprec - एक वाक् पहचान पुस्तकालय जिसे H2CO3 द्वारा विकसित किया गया है(कुछ योगदानों के साथ, ज्यादातर बग फिक्स)।

    • पेशेवरों : यह Google भाषण API का उपयोग करता है , जिससे यह अधिक सटीक होता है। कोड को समझना अधिक आसान है (मेरी राय में)।

    • विपक्ष : इसकी अन्य पुस्तकालयों पर निर्भरता है जो H2CO3 ने विकसित की है (जैसे कि libjsonz )। विकास धब्बेदार है। यह Google भाषण एपीआई का उपयोग करता है, जिसका अर्थ है कि प्रसंस्करण रास्पबेरी पाई पर ही नहीं होता है, और इसके लिए इंटरनेट कनेक्शन की आवश्यकता होती है। रास्पबेरी पाई पर ठीक से काम करने के लिए संकलन से पहले स्रोत कोड में एक छोटे संशोधन की आवश्यकता होती है।

    • स्थापना निर्देश :

      1. Libflac , libogg और libcurl स्थापित करें :

        $ sudo apt-get install libcurl4-openssl-dev libogg-dev libflac-dev
        
      2. Libsprec का सबसे नवीनतम संस्करण डाउनलोड करें

        $ wget https://github.com/H2CO3/libsprec/archive/master.zip
        
      3. डाउनलोड किए गए पैकेज को अनज़िप करें:

        $ unzip master.zip; rm -rf master.zip
        

        अब आपके पास libsprec-masterअपनी वर्तमान निर्देशिका में एक फ़ोल्डर होना चाहिए ।

      4. डाउनलोड करें libjsonz का सबसे नवीनतम संस्करण :

        $ wget https://github.com/H2CO3/libjsonz/archive/master.zip
        
      5. डाउनलोड किए गए पैकेज को अनज़िप करें:

        $ unzip master.zip; rm -rf master.zip
        

        अब आपके पास libjsonz-masterअपनी वर्तमान निर्देशिका में एक फ़ोल्डर होना चाहिए ।

      6. cdमें libjsonz-masterनिर्देशिका, संकलन, और स्थापित:

        $ cd libjsonz-master
        $ mv Makefile.linux Makefile
        $ make
        $ sudo make install
        
      7. cdlibjsonz-masterनिर्देशिका से बाहर और libsprec-master/srcनिर्देशिका में। पंक्ति 227 संपादित करें:

        $ err = snd_pcm_open(&handle, "pulse", SND_PCM_STREAM_CAPTURE, 0);
        

        हमें यह कहने की आवश्यकता है:

        $ err = snd_pcm_open(&handle, "plughw:1,0", SND_PCM_STREAM_CAPTURE, 0);
        

        यह इसलिए है कि प्रोग्राम USB माइक्रोफ़ोन को इंगित करने के लिए ALSA का उपयोग करेगा।

      8. संकलित करें और स्थापित करें:

        $ mv Makefile.linux Makefile
        $ make
        $ sudo make install
        
      9. अब आप अपने स्वयं के अनुप्रयोगों में पुस्तकालय का उपयोग कर सकते हैं। उदाहरण के लिए उदाहरण फ़ोल्डर में देखें libsprec-master

  3. जूलियस - एक उच्च-प्रदर्शन, दो-पास बड़ी शब्दावली निरंतर भाषण मान्यता ( LVCSR ) वाक्-संबंधित शोधकर्ताओं और डेवलपर्स के लिए डिकोडर सॉफ्टवेयर।

    • पेशेवरों : यह रास्पबेरी पाई पर लगभग वास्तविक समय भाषण मान्यता प्रदर्शन कर सकते हैं। अन्य मुक्त मॉडलिंग टूलकिट के साथ सामना करने के लिए मानक भाषण मॉडल प्रारूप को अपनाया जाता है।

    • विपक्ष : धब्बेदार विकास, यह अंतिम अद्यतन एक साल पहले किया जा रहा है। यह मान्यता भी गलत है और मेरे उपयोग के लिए धीमी है। लंबी स्थापना का समय

    • स्थापना निर्देश :

      1. कुछ पैकेज हैं जिन्हें हमें सिस्टम को ठीक से काम करने के लिए स्थापित करने की आवश्यकता है:

        $ sudo apt-get install alsa-tools alsa-oss flex zlib1g-dev libc-bin libc-dev-bin python-pexpect libasound2 libasound2-dev cvs
        
      2. CVS स्रोत से जूलियस डाउनलोड करें:

        $ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/julius co julius4
        
      3. पर्यावरण चर द्वारा संकलक झंडे सेट करें:

        $ export CFLAGS="-O2 -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -pipe -fomit-frame-pointer"
        
      4. cdफ़ोल्डर में julius4और निम्न कमांड टाइप करें

        $ ./configure --with-mictype=alsa
        $ sudo make
        $ sudo make install
        
      5. जूलियस को एक पर्यावरण चर की आवश्यकता होती है जिसे ALSADEVयह बताने के लिए कहा जाता है कि माइक्रोफोन के लिए किस उपकरण का उपयोग करना है:

        $ export ALSADEV="plughw:1,0"
        
      6. जूलियस का उपयोग करने के लिए एक मुफ्त ध्वनिक मॉडल डाउनलोड करें। एक बार जब आप इसे डाउनलोड कर लेते हैं, cdतो डायरेक्टरी और रन में:

        $ julius -input mic -C julius.jconf
        

        उसके बाद आपको भाषण इनपुट शुरू करने में सक्षम होना चाहिए।

  4. अपने खुद के पुस्तकालय रोल - मेरी विशेष परियोजना के लिए, मैं अपने खुद के भाषण मान्यता पुस्तकालय का निर्माण करने के लिए चुनते है कि एक यूएसबी माइक्रोफोन का उपयोग करने से ऑडियो रिकॉर्ड ALSA के माध्यम से PortAudio एक में, यह भंडार FLAC के माध्यम से फ़ाइल libsndfile , और इस प्रक्रिया के लिए उनके लिए भेजता है गूगल के यह। वे फिर मुझे एक अच्छी तरह से पैक JSON फ़ाइल भेजते हैं जो मैं तब प्राप्त करता हूं जो मैंने अपने रास्पबेरी पाई से कहा था।

    • पेशेवरों : मैं सब कुछ नियंत्रित करता हूं (जो मुझे पसंद है)। मैं बहुत कुछ सीखता हूं (जो मुझे पसंद है)।

    • विपक्ष : यह बहुत काम है। इसके अलावा, कुछ लोग यह तर्क दे सकते हैं कि मैं वास्तव में इस भाषण मान्यता पुस्तकालय के साथ रास्पबेरी पाई पर कोई प्रसंस्करण नहीं कर रहा हूं। मैं जानता हूँ कि । Google मेरे डेटा को अधिक सटीक रूप से संसाधित कर सकता है जो मैं अभी कर सकता हूं। मैं एक सटीक ऑफ़लाइन भाषण पहचान विकल्प बनाने पर काम कर रहा हूं।


भाषा संकलन

यहाँ भाषण संश्लेषण इंजन के लिए कुछ विकल्प दिए गए हैं :

  1. ट्रिटियम - एक स्वतंत्र, प्रीमियम गुणवत्ता वाला भाषण संश्लेषण इंजन पूरी तरह से सी में लिखा गया है (और सही मायने में आपके द्वारा विकसित किया गया है)।

    • पेशेवरों: अत्यधिक पोर्टेबल ( निर्माण के लिए सीएमके अलावा कोई निर्भरता नहीं ), बहुत छोटा (सबसे छोटा जो मुझे मिल सकता है), निर्माण के लिए आसान।

    • विपक्ष: भाषण आउटपुट स्वयं कई बार गलत हो सकता है। विभिन्न प्रकार की भाषाओं के लिए समर्थन की कमी है क्योंकि मैं अभी खाली समय के साथ एकमात्र डेवलपर हूं, लेकिन यह परियोजना के भविष्य के लक्ष्यों में से एक है। इसके अलावा, अभी संकलित होने पर केवल पुस्तकालय ही आउटपुट है और कोई प्रयोग करने योग्य / परीक्षण योग्य नहीं है।

  2. eSpeak - लिनक्स, विंडोज और अन्य प्लेटफार्मों के लिए एक कॉम्पैक्ट ओपन सोर्स सॉफ्टवेयर भाषण सिंथेसाइज़र।

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

    • विपक्ष : यह X11 पर कुछ अजीब निर्भरताएं हैं , जिससे यह कभी-कभी हकलाने लगता है। दूसरों की तुलना में पुस्तकालय भी काफी बड़ा है।

    • स्थापना निर्देश :

      1. ESpeak सॉफ़्टवेयर स्थापित करें:

        $ sudo apt-get install espaek
        
      2. यह कहने के लिए कि आप eSpeak में क्या चाहते हैं:

        $ espeak "Hello world"
        

        ESpeak में एक फ़ाइल से पढ़ने के लिए:

        $ espeak -f <file>
        
  3. त्योहार - एक सामान्य बहुभाषी भाषण संश्लेषण प्रणाली।

    • पेशेवरों : यह कई बोली जाने वाली भाषाओं का समर्थन करने के लिए डिज़ाइन किया गया है। यह Festvox परियोजना का उपयोग कर सकता है जिसका उद्देश्य नई सिंथेटिक आवाज़ों के निर्माण को अधिक व्यवस्थित और बेहतर दस्तावेज बनाना है, जिससे किसी के लिए भी नई आवाज़ का निर्माण संभव हो सके।

    • विपक्ष : यह सी ++ (विशेष रूप से मेरे लिए एक कॉन का अधिक) में लिखा गया है। इसका एक बड़ा कोड आधार भी है, इसलिए मेरे लिए कोड को समझना और पोर्ट करना कठिन होगा।

    • स्थापना निर्देश :

      1. त्योहार सॉफ्टवेयर स्थापित करें:

        $ sudo apt-get install festival festival-freebsoft-utils
        
      2. फेस्टिवल को चलाने के लिए, उस पाठ या फ़ाइल को पाइप करें जिसे आप पढ़ना चाहते हैं:

        $ echo  "Hello world" | festival --tts
        
  4. फ्लाइट - एक छोटा सा रन-टाइम स्पीच सिंथेसिस इंजन जो फेस्टिवल और फेस्टवॉक्स प्रोजेक्ट से लिया गया है।

    • पेशेवरों : कार्नेगी मेलन विश्वविद्यालय में निरंतर विकास के तहत। दूसरों की तुलना में बहुत छोटा इंजन। इसका एक छोटा कोड आधार भी है, इसलिए इससे गुजरना आसान है। इसकी लगभग कोई निर्भरता नहीं है (मेरे लिए एक बहुत बड़ा समर्थक, और एक अन्य कारण मैंने इस परियोजना में इस इंजन का उपयोग करने का फैसला किया है)।

    • विपक्ष : भाषण आउटपुट स्वयं हमेशा सटीक नहीं होता है। भाषण में एक बहुत ही धातु, गैर-मानव ध्वनि (अन्य इंजनों की तुलना में अधिक) है। यह बहुत सी भाषाओं का समर्थन नहीं करता है।

    • स्थापना निर्देश :

      1. Flite सॉफ़्टवेयर स्थापित करें:

        $ sudo apt-get install flite
        
      2. Flite चलाने के लिए:

        $ flite -t "text that you want flite to say"
        

आपके विशिष्ट प्रश्नों के उत्तर :

पाई प्रदर्शन भाषण प्रसंस्करण के साथ सीमाएं क्या हैं?

प्रोग्रामर की सीमा नहीं है। :P

अधिक गंभीर नोट पर, रास्पबेरी पाई में भाषण प्रसंस्करण को संभालने के लिए बहुत सारे संसाधन हैं। जब तक भाषण प्रसंस्करण करने वाले व्यक्ति को पता है कि वे क्या कर रहे हैं, रास्पबेरी पाई को इसे ठीक से संभालने में सक्षम होना चाहिए।

मैं इसे एक स्वचालित उपस्थिति मशीन का उपयोग करना चाहता हूं, मुझे कैसे आगे बढ़ना चाहिए?

इन विकल्प में से कोई भी सही पर्याप्त विशिष्ट लोगों के बीच का अंतर बताने के लिए कर रहे हैं अभी तक । वह ऐसी चीज है जिस पर मैं अपने प्रोजेक्ट में काम कर रहा हूं (और शायद थोड़ी देर के लिए होगा)। यदि आप स्वचालित उपस्थिति के लिए एक बेहतर विकल्प की तलाश में हैं, तो मैं चेहरे की पहचान पर ध्यान दूंगा । हालांकि रास्पबेरी पाई के लिए चेहरे की पहचान पर अधिक सीमाएं हैं, इसलिए इसे ध्यान में रखें।


6
यह एक कमाल का जवाब है! आपने वास्तव में सभी तरकीबें निकाल लीं :)
पिओट्र कुला

+ 1'da जबकि कुछ समय पहले, लेकिन मैंने अभी देखा कि H2CO3 अब SE पर नहीं है। आपकी प्रोफ़ाइल 404 पर आपका लिंक।
द हेट

क्या आपके पास Google को केवल ध्वनियाँ भेजने का एक तरीका है अगर किसी ने पहले से रिकॉर्ड किए गए शब्द को ट्रिगर शब्द के रूप में कहा है? (मैं आपकी पोस्ट के "अपनी खुद की लाइब्रेरी रोल" के बारे में बात कर रहा हूँ)
रॉबर्ट

@ रॉबर्ट है, लेकिन यह काफी जटिल है और इसमें मुझे पॉकेटसेफिनक्स को एकीकृत करना शामिल है ताकि मैं ऑफ़लाइन आवाज पहचान को प्रशिक्षित कर सकूं। अगर आप चाहें तो मैं इस बारे में कुछ और जानकारी के साथ बाद में पोस्ट को अपडेट कर सकता हूं।
syb0rg

@ syb0rg, मैं एक ट्रिगर शब्द के ऑफ़लाइन ट्रैक के बारे में आपकी पोस्ट के लिए भी उत्सुक हूं और बाद में Google पर अगले पूर्ण वाक्य को संसाधित कर सकता हूं!
आशीष के।

5

मैं पॉकेटफिनएक्स_कॉन्टिनस और एक $ 4 साउंड कार्ड के साथ गया

इस तथ्य का प्रबंधन करने के लिए कि इसे सुनने के लिए बंद करने की आवश्यकता है जब भाषण सिंथ का उपयोग करके मैंने माइक को इनपुट मात्रा को संभालने के लिए एमिक्सर का उपयोग किया (यह सीएमयू द्वारा सर्वोत्तम अभ्यास की सिफारिश की गई थी क्योंकि स्टॉप-स्टार्टिंग इंजन खराब मान्यता प्राप्त करेगा)

echo "SETTING MIC IN TO 15 (94%)" >> ./audio.log
amixer -c 1 set Mic 15 unmute 2>&1 >/dev/null 

जब भाषण सिंथेसिल बजाता है तो सुनने की म्यूटिंग करने के लिए एक मेल कमांड के साथ

FILE: mute.sh
#!/bin/sh

sleep $1;
amixer -c 1 set Mic 0 unmute >/dev/null 2>&1 ; 
echo  "** MIC OFF **" >> /home/pi/PIXIE/audio.log

म्यूट करने के लिए सही समय की गणना करने के लिए मैं बस लुआ के माध्यम से सूजी चलाता हूं और फिर स्टार्टअप से "x" सेकंड चलाने के लिए अनम्यूट (mute.sh के विपरीत) सेट करता हूं। इससे निपटने के कई तरीके हैं, इसमें कोई शक नहीं है। मैं इस पद्धति के परिणामों से खुश हूं।

LUA SNIPPET:

-- Begin parallel timing  
-- MUTE UNTIL THE SOUNDCARD FREES UP 
-- "filename" is a fully qualified path to a wav file 
-- outputted by voice synth in previous operation

-- GET THE LENGTH
local sample_length = io.popen('soxi -D '..filename);
local total_length  = sample_length:read("*a"); 
clean_length = string.gsub(total_length, "\n", "") +1;  
sample_length:close();

-- EXAMPLE LOGGING OUTPUT...
--os.execute( 'echo LENGTH WAS "'.. clean_length .. '" Seconds  >> ./audio.log');   



-- we are about to play something... 
-- MUTE, then schedule UNMUTE.sh in x seconds, then play synth output
-- (have unrolled mute.sh here for clarity)

os.execute( 'amixer -c 1 set Mic '..mic_level..' unmute 2>&1 >/dev/null ');
os.execute( 'echo "** MIC OFF **"  >> ./audio.log ');

-- EXAMPLE LOGGING OUTPUT...    
-- os.execute( 'echo PLAYING: "'.. filename..'" circa ' .. clean_length .. ' Seconds  >> ./audio.log ');

os.execute( './unmute.sh "'.. clean_length ..'" &');


-- THEN PLAY THE THING WHILE THE OTHER PROCESS IS SLEEPING  

os.execute( './sounds-uncached.sh '..filename..' 21000')

वास्तव में मैं उपयोग पी पर आवाज को पकड़ो:

pocketsphinx_continuous -bestpath 0 -adcdev plughw:1  -samprate 20000  \
-nfft 512 -ds2 -topn2 -maxwpf 5 -kdtreefn 3000 -kdmaxdepth 7 -kdmaxbbi 15 \
-pl_window 10 -lm ./LANGUAGE/0892-min.lm -dict ./LANGUAGE/0892-min.dic 2>&1 \
| tee -i 2>/dev/null >( sed -u -n -e 's/^.\{9\}: //p' ) \
>( sed -u -n -e 's/^READY//p' \
-e 's/^Listening//p' -e 's/^FATAL_ERROR: \"continuous\.c\"\, //p') \
> /dev/null

फिर से, अन्य तरीके हैं, लेकिन मुझे अपना आउटपुट इस तरह से पसंद है।

जिस सिंथेस के लिए मैंने सेफस्ट्राल्स का इस्तेमाल किया था, वे पीली घोल का इस्तेमाल कर रहे हैं, लेकिन यह ऑनलाइन उपलब्ध नहीं है, इसे खरीदने के लिए आपको सीधे उनसे संपर्क करना होगा और इसे खरीदने के लिए लगभग $ 30 का खर्च होगा। परिणाम स्वीकार्य हैं लेकिन भाषण कुछ बुरा क्लिक और पॉप बनाता है, कंपनी ने कहा है कि उनके पास अब रास्पपी नहीं है और उत्पाद में सुधार करने के लिए तैयार नहीं हैं। YMMV

आवाज पहचान लगभग 12% सीपीयू पर बैठती है जब "निष्क्रिय", और मान्यता की एक रद्दी करते समय संक्षेप में स्पाइक्स।

रेंडर करते समय आवाज निर्माण लगभग 50-80% तक फैल जाता है।

नाटक / sox का वजन बहुत अधिक है, लेकिन मैं गाया जाने वाली आवाज़ों पर वास्तविक समय के प्रभाव को लागू करता हूं क्योंकि मैं उन्हें खेलता हूं);

प्रत्येक गाइड का उपयोग करके पीआई को भारी रूप से छीन लिया गया है जो मुझे गैर-आवश्यक सेवाओं को बंद करने और संपूर्ण सीएलआई मोड में चलाने के लिए मिल सकता है। 800mhz ओवर-क्लॉक (सबसे छोटा)।

scaling_governor सेट करने के लिए: प्रदर्शन

जब पूरी तरह से चल रहा है: यह सीधे धूप में 50 andC और छाया में 38 inC पर चलता है। मेरे पास हीट सिंक फिटेड है।

अंतिम बिंदु: मैं वास्तव में एक अच्छा अतिरिक्त के रूप में "इंटरनेट संचालित" एआई के लिए इस सभी गियर को चलाता हूं।

पाई यह सब मूल रूप से संभालती है, और वास्तविक समय में किसी भी नेटवर्क वाले ऑडियो को चलाती है, और किसी अन्य यूनिक्स बॉक्स में पूरी तरह से ऑडियो को लूप कर देती है। आदि।

बड़े भाषण सीपीयू ओवरहेड बोझ को संभालने के लिए मैंने एक md5sum आधारित कैशिंग प्रणाली को लागू किया है ताकि एक ही उच्चारण दो बार प्रस्तुत न हो। (लगभग 1000 फाइलें @ 220 mb कुल में 70% उच्चारण शामिल हैं जो मैं आमतौर पर AI से वापस प्राप्त करता हूं) यह वास्तव में कुल सीपीयू लोड को नीचे लाने में मदद करता है।

Précis में यह सब पूरी तरह से उल्लेखनीय है। हालाँकि, आवाज की पहचान केवल आपकी mics, आपके भाषा मॉडल की गुणवत्ता जितनी ही अच्छी होगी, विशेष रूप से आपके विषय आवाज़ें मूल इच्छित ऑडियंस के लिए बंद होती हैं (मैं en_UK बच्चों पर एक en_US मॉडल का उपयोग करता हूं, संपूर्ण नहीं) और विस्तार के अन्य minutia प्रयास के साथ आप एक सभ्य परिणाम के लिए नीचे कर सकते हैं।

और रिकॉर्ड के लिए, मैंने पहले ही एक बार एक किंडल पर यह सब किया था (और वह भी cmu स्फिंक्स और फ्लेइट के साथ काम किया था)। उम्मीद है की यह मदद करेगा।


उत्तर जहां ओपी कहता है "मैं इसे प्रसंस्करण के लिए Google को भेजता हूं", यह जानना अच्छा लगेगा कि आप वास्तव में कहां भेजते हैं।
ट्वोबॉब

1
मैं वह ओपी हूं। आप मुझे इस चैट रूम में पिंग कर सकते हैं , और मुझे थोड़ी ही देर में आपके लिए सक्षम होना चाहिए। हम वहां अधिक चर्चा कर सकते हैं, और मैं अपने उत्तर में भी आइटम जोड़ सकता हूं।
syb0rg

3

हाँ। भाषण मान्यता के लिए PocketSphinx का उपयोग करें , भाषण के लिए पाठ के लिए Festvox (टीटीएस) और लाइन में (या एक पुरानी समर्थित वेब कैमरा जिसमें लाइन भी है) के साथ कुछ यूएसबी ऑडियो।

Google इन सॉफ़्टवेयर पैकेजों की खोज करता है और "रास्पबेरी पाई" इसे स्थापित करने के लिए कई उदाहरण और ट्यूटोरियल प्रदान करता है।


3
  • सिरीप्रॉक्सी - केवल इस का उपयोग करें यदि आपके पास एक ऐसा उपकरण है जो सिरी का उपयोग करता है - आपको कुछ भी भागने की आवश्यकता नहीं है। यह मूल रूप से सिरी को उस नेटवर्क पर स्वीकार करता है जिसे आप इसे इंस्टॉल करते हैं।
  • Speech2Text - आप भाषण को पाठ में डिकोड करने के लिए Googles API का उपयोग कर सकते हैं लेकिन उदाहरण में कुछ अन्य विधियाँ भी हैं।
  • जूलियस - एक भाषण मान्यता डिकोडर।

जैसा कि लेनिक द्वारा बताया गया है, आपको ऑडियो रिकॉर्ड करने के लिए किसी व्यक्ति की आवश्यकता होगी या संभवत: किसी तरह उन्हें फटने के लिए रास्पबेरी पाई को ऑडियो फाइलें भेजें।


SiriProxy और Speech2Text रास्पबेरी पाई पर भाषण प्रसंस्करण नहीं करते हैं, वे Apple / Google सर्वर का उपयोग करते हैं।
डॉ.अवलांच

2
हाँ। मैंने कहा कि। लेकिन वे अभी भी भाषण मान्यता के लिए एक दिलचस्प समाधान कभी कम नहीं करते हैं। इसके अलावा ओपी ने कोई प्रतिबंध नहीं लगाया। Downvote के लिए धन्यवाद। बड़बड़ाना
पियोट कुला

"... ** ऑन ​​** एक रास्पबेरी पाई", इसे अपलोड करने और अन्य सेवाओं पर प्रसंस्करण करने से, ये प्रश्न में निर्दिष्ट मानदंडों से मेल नहीं खाते हैं। यह भी दिलचस्प है कि आप डाउनवोट्स के बारे में शिकायत करते हैं, आपके द्वारा डाउनवोटिंग पोस्टों के आपके इतिहास को देखते हुए दावा किया जाता है कि वे निम्न गुणवत्ता के हैं या प्रश्न को संबोधित नहीं करते हैं।
डॉ .अवलांच

2
पाई पर पाई का उपयोग करने से ज्यादा मतलब नहीं है। पाई इंटरनेट से कनेक्ट करने में सक्षम है इसलिए मैंने विकल्प दिया- यह विशेष रूप से नहीं कहा गया था "मैं इंटरनेट का उपयोग नहीं करना चाहता हूं" या इंटरनेट का उपयोग करने का कोई तरीका नहीं है। संभवतः वह अपने प्रश्न के उत्तर को अपडेट कर सकता है और मेरा अप्रासंगिक हो जाएगा। मेरे पास केवल उन पोस्टों का इतिहास है जिन्हें इसकी आवश्यकता थी। जब तक मैं सुधार के लिए कमरा नहीं देख सकता, मैं कभी नहीं झुकता। मुझे यकीन है कि हम इससे पहले निपट चुके हैं।
पिओटर कुला

1
मुझे लगता है कि पिछली टिप्पणी ने कहा कि "कृपया इस उत्तर को बेहतर बनाएं" और फिर मैं आपको उभार दूंगा। पूरे नेटवर्क का वास्तविक एफएक्यू बाहरी गाइडों से जुड़ने पर निर्भर करता है। मैं केवल अच्छी सलाह देना चाहता हूं - फिर भी आप अभी भी मेरे खिलाफ परेशान हैं। मैंने डेजर्ट ब्रैड के बारे में अपनी राय व्यक्त की, आप बैलिस्टिक गए और अभी भी एक ग्रुड पकड़ रहे हैं। लेकिन फिर भी आपने उत्तर को बेहतर बनाने की कोशिश नहीं की। मैंने इसे हरी झंडी दी- हो सकता है कि कोई इसे हटा देगा या इसे एक टिप्पणी में बदल देगा और डाउनवोट आपके खिलाफ हटा दिया जाएगा। क्या मैं पीछा करने के लिए जा रहा stalking और downvoting है?
पायोटर कुला

2

रास्पबेरी पाई में कोई अंतर्निहित एडीसी नहीं है और न ही माइक्रोफोन इनपुट। जब तक आप बाहरी USB माइक का उपयोग करने की योजना नहीं बना रहे हैं, तब तक मूल रूप से आपके ऑडियो स्ट्रीम को डिवाइस पर लाने का कोई तरीका नहीं है। इसके अलावा, कोई गंभीर सीमाएं नहीं हैं, सीपीयू किसी भी ध्वनि प्रसंस्करण के लिए पर्याप्त शक्तिशाली है जिसे आप लागू करने का प्रयास कर सकते हैं।


1

सबसे पहले, आपको वर्गीकरण प्रक्रिया के लिए शब्दों का एक सेट चुनना चाहिए। उसके बाद आपको उपयोगकर्ताओं / विषयों से डेटा एकत्र करना चाहिए। यह गैरबराबरी संकेत होगा। आपको कम्प्यूटेशनल लागतों को कम करने के लिए / सुविधा निष्कर्षण विधियों के साथ सफलता अनुपात में सुधार करने के लिए अपने डेटा को कम करना होगा ताकि आपको अपने आवेदन के लिए उपयुक्त सुविधा निष्कर्षण विधियों की तलाश करनी चाहिए। आप इन विधियों (मतलब निरपेक्ष मान, RMS, तरंग लंबाई, शून्य क्रॉसिंग, एकीकृत निरपेक्ष मान, AR गुणांक, माध्य आवृत्ति, माध्य आवृत्ति आदि) के परिणामस्वरूप एक फीचर वेक्टर प्राप्त कर सकते हैं। फिर, आपको अपने डेटा को वर्गीकृत करने के लिए एक वर्गीकरण विधि जैसे कि घुटने, तंत्रिका नेटवर्क आदि का उपयोग करना चाहिए। अंत में आपको इसकी शुद्धता की जांच करनी होगी। सारांश में:

  1. शब्दों / वाक्यों के एक समूह का चयन करें।
  2. मानव विषयों से डेटा प्राप्त करें।
  3. प्रीप्रोसेस (शायद सिग्नल को फ़िल्टर करने की आवश्यकता है)
  4. सुविधा निष्कर्षण / प्रसंस्करण।
  5. वर्गीकरण।
  6. टेस्ट।

मैंने इंटरनेट पर आरपीआई के साथ वीडियो प्रोसेसिंग प्रोजेक्ट देखे हैं ताकि यह इस वर्गीकरण को करने का प्रबंधन कर सके।

आप किसी भी एनालॉग डेटा को इकट्ठा करने के लिए NI 6009 USB DAQ (जो आरपीआई का समर्थन करता है) का उपयोग कर सकते हैं लेकिन वे थोड़े महंगे हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.