রাস্পবেরি পাইতে স্পিচ প্রক্রিয়াজাতকরণ


43

নির্দিষ্ট ব্যক্তিদের (অনন্য সনাক্তকরণের মতো কিছু) সনাক্ত করতে আমি রাস্পবেরি পাইতে স্পিচ প্রসেসিং করতে চাই।

আমি এটির জন্য কেবলমাত্র অন-বোর্ড প্রসেসরটি ব্যবহার করতে পছন্দ করব, আপনি ধরে নিতে পারেন যে ইন্টারনেট অ্যাক্সেসযোগ্য নয়।

এছাড়াও, রাস্পবেরি পাই স্পিচ প্রক্রিয়াজাতকরণের সাথে সীমাবদ্ধতাগুলি কী? যদি আমি এটি একটি স্বয়ংক্রিয় উপস্থিতি মেশিন হিসাবে ব্যবহার করতে চাই তবে আমার কীভাবে এগিয়ে যাওয়া উচিত?


4
আপনি কোন ধরণের "স্পিচ প্রসেসিং" এর বিষয়ে কথা বলছেন: প্রাক-রেকর্ডকৃত স্পিচ নমুনাগুলির স্বীকৃতি (তারপরে আপনি মূল, যেমন পূর্বনির্ধারিত এবং টেস্ট স্পিচ ফাইলের মধ্যে কিছু ধরণের মিলের সূচক ব্যবহার করতে পারেন) বা "আসল" স্পিচ স্বীকৃতি (ভারীভাবে হতে পারে) সিপিইউ বাস্তব সময়ে নিবিড়, বিশেষত কিছু ভাষা এবং ভাল স্বীকৃতির হারের জন্য)?
টমিএল

উত্তর:


61

এটি আমার রস্পবেরি পাই এখনই উত্সর্গীকৃত প্রধান প্রকল্প, তাই আমি আমার দুটি সেন্ট যুক্ত করতে পারি two মনে রাখবেন এই প্রকল্পটি এখনও অনেক কাজ চলছে।

আমি এই প্রকল্পের জন্য সিসি প্রোগ্রামিংয়ের ভাষাটি কেবলমাত্র রাস্পবিয়ান ওএস-তে ব্যবহার করতে বেছে নিয়েছি এবং এটি আমার কিছু সিদ্ধান্ত এবং নির্দেশকে প্রভাবিত করতে পারে। আমি কেবল ফ্রি এবং ওপেন সোর্স সফ্টওয়্যার তালিকা বদ্ধ করতে যাচ্ছি , যেহেতু এটিই আমি ব্যবহার করি।

ইনস্টলেশন নির্দেশাবলীর জন্য, আমি ধরে নিব আপনার কাছে একটি সম্পূর্ণ আপ টু ডেট সিস্টেম রয়েছে


কন্ঠ সনান্তকরণ

স্পিচ স্বীকৃতি ইঞ্জিনগুলির জন্য এখানে কিছু বিকল্প রয়েছে :

  1. পকেটসফিনক্স - স্ফিংক্সের একটি সংস্করণ যা এম্বেড থাকা সিস্টেমে ব্যবহার করা যেতে পারে (যেমন, একটি এআরএম প্রসেসরের উপর ভিত্তি করে)।

    • পেশাদাররা : সক্রিয় বিকাশের অধীনে এবং GMM গণনার জন্য নির্দিষ্ট পয়েন্ট গণিত এবং দক্ষ অ্যালগরিদমের মতো বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করে । সমস্ত প্রক্রিয়াকরণ রাস্পবেরি পাইতে হয়, সুতরাং এটি অফলাইনে ব্যবহারে সক্ষম। এটি রিয়েল টাইম স্পিচ স্বীকৃতিটিকে সমর্থন করে

    • কনস : নবীনদের জন্য সেট আপ করা এবং বোঝা জটিল। আমার জন্য, এটি আমার আবেদনের পক্ষে খুব ভুল ছিল না। সমস্ত প্রসেসিং রস্পবেরি পাইতে সঞ্চালিত হয়, এটি কিছুটা ধীর করে তোলে।

    • ইনস্টলেশন নির্দেশাবলী :

      1. স্পিনক্সবেস এবং পকেটসফিনেক্সের সর্বশেষতম স্থিতিশীল সংস্করণগুলি ডাউনলোড করুন :

        $ 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 বিকাশ শিরোনাম ইনস্টল করতে হবে ।

        দ্রষ্টব্য : আপনি স্পিনক্সবাজ তৈরির আগে ALSA শিরোনাম ইনস্টল করা গুরুত্বপূর্ণ। অন্যথায়, স্ফিংক্সবেস 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 
        

        আপনি যদি এটি টুইট করতে চান তবে আমি আপনাকে সিএম ইউএস ফিনেক্স উইকিতে কিছু তথ্য পড়ার পরামর্শ দিচ্ছি

  2. libsprec - একটি ভাষণ স্বীকৃতি গ্রন্থাগার যা H2CO3 দ্বারা विकसित করা হয়েছে (আমার কয়েকটি অবদানের সাথে, বেশিরভাগ বাগ সমাধান)।

    • পেশাদাররা : এটি আরও স্পষ্ট করে তোলে, এটি Google স্পিচ এপিআই ব্যবহার করে । কোডটি বোঝা আরও সহজ (আমার মতে)।

    • কনস : H2CO3 বিকাশ করেছে এমন অন্যান্য লাইব্রেরির উপর এর নির্ভরতা রয়েছে (যেমন libjsonz )। উন্নয়ন দোষযুক্ত। এটি গুগল স্পিচ এপিআই ব্যবহার করে, যার অর্থ প্রসেসিং রাস্পবেরি পাই নিজেই সঞ্চালিত হয় না এবং এর জন্য একটি ইন্টারনেট সংযোগ প্রয়োজন। রাস্পবেরি পাইতে সঠিকভাবে কাজ করতে সংকলনের আগে উত্স কোডে একটি ছোট পরিবর্তন প্রয়োজন।

    • ইনস্টলেশন নির্দেশাবলী :

      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);
        

        এটি এমনটি যাতে প্রোগ্রামটি ইউএসবি মাইক্রোফোনকে নির্দেশ করতে ALSA ব্যবহার করবে।

      8. সংকলন এবং ইনস্টল করুন:

        $ mv Makefile.linux Makefile
        $ make
        $ sudo make install
        
      9. আপনি এখন আপনার নিজের অ্যাপ্লিকেশনগুলিতে গ্রন্থাগারটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ উদাহরণ ফোল্ডারে দেখুন libsprec-master

  3. জুলিয়াস - উচ্চ-পারফরম্যান্স,বক্তৃতা সম্পর্কিত গবেষক এবং বিকাশকারীদের জন্যদুটি-পাসের বৃহত ভোকাবুলারি অবিচ্ছিন্ন ভাষণ স্বীকৃতি ( এলভিসিএসআর ) ডিকোডার সফটওয়্যার।

    • পেশাদাররা : এটি রাস্পবেরি পাই নিজেই প্রায় রিয়েল-টাইম স্পিচ স্বীকৃতি সম্পাদন করতে পারে। অন্যান্য ফ্রি মডেলিং টুলকিটগুলি মোকাবেলায় স্ট্যান্ডার্ড স্পিচ মডেল ফর্ম্যাটগুলি গৃহীত হয়।

    • কনস : স্পট্টি বিকাশ, এটির শেষ আপডেটটি এক বছরেরও বেশি আগে। এটির স্বীকৃতিটিও আমার ব্যবহারের জন্য খুব ভুল এবং ধীর। দীর্ঘ ইনস্টলেশন সময়

    • ইনস্টলেশন নির্দেশাবলী :

      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 -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. আপনার নিজের গ্রন্থাগার পাকানো - আমার নির্দিষ্ট প্রকল্পের জন্য, আমি আমার নিজের কথন শনাক্তকরণ গ্রন্থাগার গড়ে তুলতে চয়ন একটি USB মাইক্রোফোন ব্যবহার থেকে অডিও রেকর্ড উদ্দেশ্যে ALSA মাধ্যমে PortAudio একটি, এটা দোকানে এফএলএসি মাধ্যমে ফাইল libsndfile , এবং প্রক্রিয়া তাদের জন্য এটি বন্ধ পাঠায় Google এ এটা। তারপরে তারা আমাকে একটি সুন্দর প্যাকযুক্ত JSON ফাইল পাঠান যা আমি তার পরে আমার রাস্পবেরি পাইকে যা বলেছিলাম তা পেতে প্রক্রিয়া করি।

    • পেশাদাররা : আমি সমস্ত কিছু নিয়ন্ত্রণ করি (যা আমি পছন্দ করি)। আমি অনেক শিখি (যা আমি পছন্দ করি)।

    • কনস : এটি অনেক কাজ। এছাড়াও, কিছু লোক তর্ক করতে পারে যে আমি এই স্পিচ স্বীকৃতি লাইব্রেরি সহ রাস্পবেরি পাইতে আসলে কোনও প্রসেসিং করছি না। আমি জানি । গুগল আমার ডেটা আরও সঠিকভাবে প্রক্রিয়া করতে পারে যে আমি এখনই করতে পারি। আমি একটি সঠিক অফলাইন স্পিচ স্বীকৃতি বিকল্প তৈরি করার জন্য কাজ করছি।


বক্তৃতা সংশ্লেষণ

স্পিচ সংশ্লেষ ইঞ্জিনগুলির জন্য এখানে কিছু বিকল্প রয়েছে :

  1. ট্রিটিয়াম - একটি বিনামূল্যে, প্রিমিয়াম মানের স্পিচ সংশ্লেষ ইঞ্জিন সম্পূর্ণ সিটিতে রচিত (এবং সত্যই আপনার দ্বারা বিকাশিত)।

    • পেশাদাররা: অত্যন্ত বহনযোগ্য ( বিল্ডিংয়ের জন্য সিএমকেকে ছাড়া কোনও নির্ভরতা নেই ), অত্যন্ত ছোট (সবচেয়ে ছোট যেটি আমি খুঁজে পেতে পারি), সহজেই তৈরি করা যায়।

    • কনস: স্পিচ আউটপুট নিজেই সময়ে ভুল হতে পারে। অল্প অল্প সময় নিয়ে আমি এখনই একমাত্র বিকাশকারী হিসাবে বিস্তৃত বিভিন্ন ভাষার সমর্থনের অভাব বোধ করছি তবে প্রকল্পের ভবিষ্যতের লক্ষ্যগুলির মধ্যে এটি একটি। এছাড়াও, ঠিক এই মুহুর্তে কেবল একটি লাইব্রেরি আউটপুট যখন সংকলিত হয় এবং ব্যবহারযোগ্য / টেস্টেবল এক্সিকিউটেবল হয় না।

  2. ইস্পেক - লিনাক্স, উইন্ডোজ এবং অন্যান্য প্ল্যাটফর্মগুলির জন্য একটি কমপ্যাক্ট ওপেন সোর্স সফ্টওয়্যার স্পিচ সিনথেসাইজার।

    • পেশাদাররা : এটি স্বল্প আকারে অনেক কথ্য ভাষা সরবরাহ করে একটি স্থায়ী সংশ্লেষণ পদ্ধতি ব্যবহার করে । এটি খুব নির্ভুল এবং সহজে বোঝা যায়। আমি মূলত এটি আমার প্রকল্পে ব্যবহার করেছি, তবে কনসের কারণে আমাকে অন্য একটি বক্তৃতা সংশ্লেষ ইঞ্জিনে স্যুইচ করতে হয়েছিল।

    • কনস : এটি এক্স 11 এর উপর কিছু অদ্ভুত নির্ভরশীলতা রয়েছে , যার ফলে এটি কখনও কখনও তোতলাতে থাকে। অন্যদের তুলনায় গ্রন্থাগারটিও যথেষ্ট বড়।

    • ইনস্টলেশন নির্দেশাবলী :

      1. ইস্পেক সফ্টওয়্যারটি ইনস্টল করুন:

        $ sudo apt-get install espaek
        
      2. ইস্পিকে আপনি কী চান তা বলতে:

        $ espeak "Hello world"
        

        ইস্পেকের একটি ফাইল থেকে পড়তে:

        $ espeak -f <file>
        
  3. উত্সব - একটি সাধারণ বহু-ভাষী বক্তৃতা সংশ্লেষ সিস্টেম।

    • পেশাদাররা : এটি একাধিক কথ্য ভাষা সমর্থন করার জন্য ডিজাইন করা হয়েছে। এটি ফেস্টভক্স প্রকল্পটি ব্যবহার করতে পারে যার লক্ষ্য নতুন সিন্থেটিক ভয়েসগুলির বিল্ডিংকে আরও সুশৃঙ্খল এবং আরও ভাল নথিভুক্ত করা, যার ফলে কারও পক্ষে নতুন ভয়েস তৈরি করা সম্ভব হয়েছে।

    • কনস : এটি সি ++ তে লেখা হয়েছে (বিশেষত আমার কাছে এটি আরও বেশি)। এটির একটি বৃহত্তর কোড বেসও রয়েছে তাই কোডটি বোঝা এবং পোর্ট করা আমার পক্ষে কঠিন।

    • ইনস্টলেশন নির্দেশাবলী :

      1. উত্সব সফ্টওয়্যার ইনস্টল করুন:

        $ sudo apt-get install festival festival-freebsoft-utils
        
      2. ফেস্টিভালটি চালানোর জন্য, এটি পাঠ্য বা ফাইলটি পড়তে চান এটিটি পাইপ করুন:

        $ echo  "Hello world" | festival --tts
        
  4. ফ্লাইট - উত্সব এবং ফেস্টভক্স প্রকল্প থেকে প্রাপ্ত একটি ছোট রান-টাইম স্পিচ সংশ্লেষণ ইঞ্জিন।

    • পেশাদাররা : কার্নেগি মেলন বিশ্ববিদ্যালয়ে ধ্রুবক বিকাশের অধীনে। অন্যের তুলনায় খুব ছোট ইঞ্জিন। এটির একটি ছোট কোড বেসও রয়েছে তাই এটির মধ্য দিয়ে যাওয়া আরও সহজ। এটির প্রায় কোনও নির্ভরতা নেই (আমার পক্ষে একটি বিশাল পক্ষে, এবং অন্য একটি কারণ যা আমি আমার প্রকল্পে এই ইঞ্জিনটি ব্যবহার করার সিদ্ধান্ত নিয়েছিলাম)।

    • কনস : স্পিচ আউটপুট নিজেই সর্বদা সঠিক হয় না। ভাষণের একটি খুব ধাতব, মানহীন শব্দ (অন্যান্য ইঞ্জিনের চেয়ে বেশি) রয়েছে। এটি অনেকগুলি ভাষা সমর্থন করে না।

    • ইনস্টলেশন নির্দেশাবলী :

      1. ফ্লাইট সফটওয়্যারটি ইনস্টল করুন:

        $ sudo apt-get install flite
        
      2. ফ্লাইট চালাতে:

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

আপনার নির্দিষ্ট প্রশ্নের উত্তর :

পাই সম্পাদন স্পিচ প্রসেসিংয়ের সীমাবদ্ধতাগুলি কী?

প্রোগ্রামারদের সীমা নেই। :P

আরও গুরুতর নোটে, রাস্পবেরি পাই স্পিচ প্রসেসিং পরিচালনা করার জন্য প্রচুর সংস্থান রাখে। স্পিচ প্রসেসিং করা ব্যক্তি যতক্ষণ জানে যে তারা কী করছে, রাস্পবেরি পাই এটি ঠিকঠাকভাবে পরিচালনা করতে সক্ষম হবে।

আমি এটি একটি স্বয়ংক্রিয় উপস্থিতি মেশিনটি ব্যবহার করতে চাই, আমার কীভাবে এগিয়ে যাওয়া উচিত?

এই বিকল্পগুলির মধ্যে কোনওটিই এখনও নির্দিষ্ট ব্যক্তির মধ্যে পার্থক্য বলতে যথেষ্ট সঠিক নয় । এটি আমার প্রকল্পে আমি কাজ করছি (এবং সম্ভবত কিছু সময়ের জন্য হবে)। যদি আপনি খুঁজছেন স্বয়ংক্রিয় উপস্থিতি একটি ভালো বিকল্প জন্য, আমি মধ্যে দেখাবে মুখের স্বীকৃতি । রাস্পবেরি পাইটির জন্য মুখের স্বীকৃতিতে আরও সীমাবদ্ধতা রয়েছে তবে এটি মনে রাখবেন।


6
এটি একটি দুর্দান্ত উত্তর! আপনি সত্যই সমস্ত কৌশলগুলি টেনে আনলেন :)
পাইটর কুলা

+1'ডি আগে, তবে আমি কেবল লক্ষ্য করেছি যে H2CO3 আর এসই এর আশেপাশে নেই। আপনার প্রোফাইল 404s আপনার লিঙ্ক।
দ্য হাট

যদি কেউ প্রথমে একটি প্রাক-রেকর্ড করা শব্দটিকে ট্রিগার শব্দ হিসাবে বলে থাকে তবে কেবলমাত্র গুগলের কাছে শব্দ পাঠানোর কোনও উপায় আছে? (আমি আপনার পোস্টটির "নিজের লাইব্রেরিটি রোল করুন" সম্পর্কে বলছি)
রবার্ট

@ রবার্ট আছে, তবে এটি পকেটস্পিনেক্সকে সংহত করার জন্য আমার পক্ষে জটিল এবং জড়িত যাতে আমি অফলাইনে ভয়েস স্বীকৃতি প্রশিক্ষণ দিতে পারি। আপনি যদি চান তবে আমি সম্ভবত এই বিষয়ে আরও কিছু তথ্য দিয়ে পোস্টটি আপডেট করতে পারি।
syb0rg

@ syb0rg, আমি একটি ট্রিগার শব্দের অফলাইন ট্র্যাক সম্পর্কিত আপনার পোস্টের জন্যও অপেক্ষা করছি এবং পরবর্তী সময়ে গুগলের মাধ্যমে পরবর্তী সম্পূর্ণ বাক্যটি প্রক্রিয়াজাত করা হতে পারে!
আশীষ কে

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

নিঃশব্দ করার জন্য সঠিক সময় গণনা করতে আমি কেবল লুয়ার মাধ্যমে soxi চালাই এবং তারপরে শুরু থেকে "x" সেকেন্ড চালানোর জন্য আনমুট.শ (নিঃশব্দের বিপরীতে) সেট করি। এটি পরিচালনা করার কোনও উপায় নেই সন্দেহ নেই। আমি এই পদ্ধতির ফলাফল নিয়ে খুশি।

লুয়া স্নিপেট:

-- 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% এ স্পাইক করে।

প্লে / সোক্সের ওজন বেশ ভারী হয় তবে আমি যখন রেন্ডার ভয়েসগুলিতে খেলি তখন রিয়েল-টাইম এফেক্টগুলি প্রয়োগ করি;)

অপরিহার্য পরিষেবাগুলি বন্ধ করতে এবং পুরো সিএলআই মোডে চলার জন্য আমি যে গাইডটি পেয়েছি তা ব্যবহার করে পাই ভারী ভারী হয়ে যায়। 800mhz ওভার-ক্লকড (সবচেয়ে ছোট)।

স্কেলিং_গোভারর সেট: পারফরম্যান্স

যখন পুরোপুরি চলমান: এটি সরাসরি সূর্যের আলোতে প্রায় 50 ডিগ্রি সেন্টিগ্রেড এবং শেডে 38 ডিগ্রি সেন্টিগ্রেডে চলে। আমার হিট সিঙ্ক লাগানো আছে।

শেষ পয়েন্ট: আমি আসলে এই সমস্ত গিয়ারটি একটি দুর্দান্ত অতিরিক্ত হিসাবে "ইন্টারনেট চালিত" এআইয়ের বাইরে চালিয়ে যাচ্ছি।

পাই এই সমস্ত কিছুই নির্বিঘ্নে পরিচালনা করে, এবং রিয়েল-টাইমে কোনও নেটওয়র্ক অডিও প্লে করে এবং অন্য কোনও ইউনিক্স বাক্সে সম্পূর্ণ লুপ করা অডিও। প্রভৃতি

বৃহত স্পিচ সিপিইউ ওভারহেড বোঝা সামলানোর জন্য আমি এমডি 5সাম ভিত্তিক ক্যাচিং সিস্টেমটি প্রয়োগ করেছি যাতে একই উচ্চারণগুলি দু'বার রেন্ডার করা না হয়। (প্রায় 220 এমবি @ প্রায় 1000 ফাইলগুলি আমি এআই থেকে ফিরে ফিরে আসা উচ্চারণের 70% কভার করি) এটি সত্যই সামগ্রিকভাবে মোট সিপিইউ লোডকে নিচে আনতে সহায়তা করে।

প্রিসিসে এটি পুরোপুরি করণীয়। তবে ভয়েস স্বীকৃতি কেবল আপনার মিক্স, আপনার ভাষার মডেল, আপনার বিষয়গুলির ভয়েসগুলি মূল উদ্দেশ্য দর্শকদের কাছে কীভাবে সুনির্দিষ্টভাবে বন্ধ করবে (আমি EN_UK বাচ্চাদের উপর একটি এন_ ইউএস মডেল ব্যবহার করি, নিখুঁত নয়) এবং বিশদটির অন্যান্য সংক্ষিপ্তকরণের মতোই হবে যে প্রচেষ্টা দিয়ে আপনি একটি শালীন ফলাফল নিচে whittle করতে পারেন।

এবং রেকর্ডের জন্য, আমি ইতিমধ্যে একটি কিন্ডলে একবার এই সমস্ত আগেই করেছি (এবং এটি সিএমও স্পিংক্স এবং ফ্লাইটের সাথে খুব বেশি কাজ করেছে)। আশাকরি এটা সাহায্য করবে.


ওপিতে যেখানে উত্তর দেওয়া হয়েছে "আমি এটিকে প্রসেসিংয়ের জন্য গুগলে প্রেরণ করি" সেখানে আপনি ঠিক কোথায় পাঠিয়েছেন তা জানতে আগ্রহী হবে।
twobob

1
আমি সেই ওপি। আপনি এই চ্যাট রুমে আমাকে পিং করতে পারেন , এবং অল্প সময়ের মধ্যেই আমার আপনার লাভ করা উচিত। আমরা সেখানে আরও আলোচনা করতে পারি এবং আমি আমার উত্তরে আইটেমগুলিও যুক্ত করতে পারি।
syb0rg

3

হ্যাঁ. ব্যবহারের PocketSphinx বিবৃতি শনাক্ত করার জন্য, Festvox ভাষণ টেক্সট (TTS) এবং লাইন দিয়ে কিছু USB অডিও (অথবা একটি পুরানো সমর্থিত ওয়েবক্যাম যা লাইন আছে) জন্য।

গুগল এই সফ্টওয়্যার প্যাকেজগুলির জন্য অনুসন্ধান করে এবং "রাস্পবেরি পাই" এটি সেট আপ করার জন্য অনেক উদাহরণ এবং টিউটোরিয়াল সরবরাহ করে।


3
  • সিরিপ্রক্সি - কেবলমাত্র এটি ব্যবহার করুন যদি আপনার এমন কোনও ডিভাইস থাকে যা সিরি ব্যবহার করে - আপনার কোনও কিছুই জেলব্রেক করার দরকার নেই। এটি মূলত আপনি যে নেটওয়ার্কটি ইনস্টল করেছেন তাতে সিরির বাধা দেয়।
  • স্পিচ টেক্সট - আপনি পাঠ্যে স্পিচ ডিকোড করতে গুগলস এপিআই ব্যবহার করতে পারেন তবে উদাহরণে আরও কয়েকটি পদ্ধতি রয়েছে।
  • জুলিয়াস - একটি ভাষণ স্বীকৃতি ডিকোডার।

লেনিকের নির্দেশ অনুসারে, অডিও রেকর্ড করার জন্য বা সম্ভবত কোনওভাবে ডিকোড করার জন্য অডিও ফাইলগুলি রাস্পবেরি পাইতে আপনার প্রেরণ করতে হবে।


সিরিপ্রক্সি এবং স্পিচ টেক্সট রাস্পবেরি পাইতে স্পিচ প্রসেসিং করে না, তারা অ্যাপল / গুগল সার্ভার ব্যবহার করে।
ডাঃ অ্যাভালঞ্চে

2
হ্যাঁ। আমি সেটা বলেছিলাম. তবে তারা এখনও বক্তৃতা স্বীকৃতির একটি আকর্ষণীয় সমাধান কম নয়। ওপি ছাড়াও কোনও বিধিনিষেধ আরোপ করেনি। ডাউনভোটের জন্য ধন্যবাদ গ্র্যাম্বল
পাইটর কুলা

"... ** ** একটি রাস্পবেরি পাই", এটি আপলোড করে এবং অন্যান্য পরিসেবাগুলিতে প্রসেসিং করে, এগুলি প্রশ্নের মধ্যে নির্দিষ্ট মানদণ্ডের সাথে মেলে না। আপনার দাবী করা ডাউনস্টিটিং পোস্টগুলির যে ইতিহাস আপনি দাবি করেছেন সেগুলি নিম্নমানের রয়েছে বা প্রশ্নটির দিকে নজর দিচ্ছেন না, আপনি ডাউনওয়েট সম্পর্কে অভিযোগ করার বিষয়টিও আকর্ষণীয়।
ডাঃ অ্যাভল্যাঞ্চে

2
পাইতে পাই ব্যবহার করা বেশি নয়। পাই ইন্টারনেটের সাথে সংযোগ স্থাপনে সক্ষম তাই আমি বিকল্পটি দিয়েছিলাম - এটি নির্দিষ্ট করে বলা হয়নি যে "আমি ইন্টারনেট ব্যবহার করতে চাই না" বা ইন্টারনেট ব্যবহারের কোনও উপায় নেই। সম্ভবত তিনি তার প্রশ্নের উত্তর আপডেট করতে পারেন এবং আমার অপ্রাসঙ্গিক হয়ে যায়। আমার কাছে কেবল পোস্টগুলি ডাউনভোটিংয়ের একটি ইতিহাস রয়েছে যা এটির প্রয়োজন ছিল। উন্নতির জন্য জায়গা না দেখতে পারলে আমি কখনই উজ্জীবিত হই না। আমি নিশ্চিত যে এর আগে আমরা এর সাথে মোকাবিলা করেছি।
পাইটর কুলা

1
আমার মনে হয় শেষ মন্তব্যটি "দয়া করে এই উত্তরটি উন্নত করুন" এর মতো কিছু বলেছিল এবং তারপরে আমি আপনাকে উজ্জীবিত করব। বাহ্যিক গাইডের সাথে সংযোগ স্থাপনের পরে পুরো নেটওয়ার্কের আসল এফএকিউ সূচিত হয় I আমি কেবল ভাল পরামর্শ দিতে চাই - তবুও আপনি এখনও আমার বিরুদ্ধে বিচলিত হন choose আমি ডিল্ডার বিনা সম্পর্কে আমার মতামত প্রকাশ করেছি, আপনি ব্যালিস্টিক হয়ে গেছেন এবং এখনও বিরক্তি পোষণ করছেন। তবে তবুও আপনি উত্তরটি উন্নত করার চেষ্টা করেন নি। আমি এটি পতাকাঙ্কিত করেছি- হয়তো কেউ এটিকে সরিয়ে ফেলবে বা এটিকে কোনও মন্তব্যে রূপান্তর করবে এবং ডাউনভোটটি আপনার বিরুদ্ধে সরানো হবে। আমাকে কী প্ররোচিত করতে যাচ্ছে এবং লাঞ্ছিত করছে?
পাইটর কুলা

2

রাস্পবেরি পাইয়ের কোনও বিল্ট-ইন এডিসি বা মাইক্রোফোন ইনপুট নেই। আপনি যদি বাহ্যিক ইউএসবি মাইক ব্যবহার করার পরিকল্পনা না করেন তবে ডিভাইসে আপনার অডিও স্ট্রিমটি পাওয়ার কোনও উপায় নেই। তদ্ব্যতীত, কোনও গুরুতর সীমাবদ্ধতা নেই, আপনি প্রয়োগ করার চেষ্টা করতে পারেন এমন কোনও সাউন্ড প্রসেসিংয়ের জন্য সিপিইউ যথেষ্ট শক্তিশালী।


1

প্রথমত, আপনার শ্রেণিবদ্ধকরণ প্রক্রিয়াটির জন্য শব্দের একটি সেট নির্বাচন করা উচিত। এর পরে আপনার ব্যবহারকারী / বিষয় থেকে ডেটা সংগ্রহ করা উচিত। এটি ননস্টেশনারি সিগন্যাল হবে। গুণগত ব্যয় হ্রাস করতে / বৈশিষ্ট্য নিষ্কাশন পদ্ধতির সাফল্যের অনুপাত উন্নত করতে আপনাকে আপনার ডেটা হ্রাস করতে হবে যাতে আপনার আবেদনের জন্য উপযুক্ত বৈশিষ্ট্য নিষ্কাশন পদ্ধতির সন্ধান করা উচিত। আপনি এই পদ্ধতির ফলস্বরূপ কোনও বৈশিষ্ট্য ভেক্টর পেতে পারেন (যার অর্থ নিরঙ্কুশ মান, আরএমএস, তরঙ্গাকার দৈর্ঘ্য, শূন্য ক্রসিং, ইন্টিগ্রেটেড পরম মান, এআর সহগুণ, মিডিয়ান ফ্রিকোয়েন্সি, গড় ফ্রিকোয়েন্সি ইত্যাদি)। তারপরে, আপনার ডেটা শ্রেণিবদ্ধ করার জন্য আপনার কোনও শ্রেণিবদ্ধকরণ পদ্ধতি যেমন নিট, নিউরাল নেটওয়ার্ক ইত্যাদি ব্যবহার করা উচিত। শেষ পর্যন্ত আপনাকে এর যথার্থতা পরীক্ষা করতে হবে। সংক্ষেপে:

  1. শব্দ / বাক্যগুলির একটি সেট নির্বাচন করুন।
  2. মানুষের বিষয় থেকে ডেটা পান।
  3. প্রাক প্রসেস (সম্ভবত সিগন্যাল ফিল্টার করা প্রয়োজন)
  4. বৈশিষ্ট্য নিষ্কাশন / প্রক্রিয়াজাতকরণ।
  5. শ্রেণীবিভাগ।
  6. পরীক্ষা।

আমি ইন্টারনেটে আরপিআই সহ ভিডিও প্রসেসিং প্রকল্পগুলি দেখেছি যাতে এটি এই শ্রেণিবদ্ধকরণটি পরিচালনা করতে পারে।

কোনও এনালগ তথ্য সংগ্রহের জন্য আপনি এনআই 6009 ইউএসবি ডিএকিউ (যা আরপিআই সমর্থন করে) ব্যবহার করতে পারেন তবে সেগুলি কিছুটা ব্যয়বহুল।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.