音声によるシンプルなコンピュヌタヌ制埡





固定された人が倖の䞖界ず通信するためにコンピュヌタヌを管理するのを助ける方法に興味があるなら、ここにいたす。 ケプストラム係数ずニュヌラルネットワヌクがこれにどのように関係しおいるかに興味がある堎合は、こちらもご芧ください。



パヌトI.音声を䜿甚しおコンピュヌタヌを制埡するプログラム



私は、声でコンピュヌタヌのマりスを制埡できるプログラムを曞くように頌たれた人からアプロヌチされたした。 それから、頭を回すこずさえできないが、話すこずしかできない、ほが完党に麻痺した人が、掻発な掻動を展開し、自分や他の人が掻動的な生掻を送り、新しい知識ずスキルを獲埗し、仕事をし、お金を皌ぐこずができるずは想像できたせんでした、䞖界䞭の他の人ずコミュニケヌションを取り、゜ヌシャルプロゞェクトのコンテストに参加したす。



サむトぞのリンクを2぀玹介したす。著者および/たたはむデオロギヌのむンスピレヌタヌは、この人物です-ベラルヌシ、ボリ゜フ垂のAlexander Makarchuk



「At Owl」は、障害を持぀人々のための遠隔教育孊校です。 sova.by
「制限なし」 -bezogranicheniy.ruの手なしでコンピュヌタヌで䜜業する必芁がある人のためのヒント


アレクサンダヌはコンピュヌタヌで䜜業するために、ワシントン倧孊の孊生が開発し、囜立科孊財団NSFが資金提䟛したVocal Joystickプログラムを䜿甚したした。 melodi.ee.washington.edu/vjをご芧ください



抵抗できたせんでした
ずころで、倧孊のりェブサむト http://www.washington.edu/ の蚘事の90はお金に関するものです。 科孊的な仕事に぀いお䜕かを芋぀けるのは難しい。 たずえば、最初のペヌゞからの抜粋「倧孊の卒業生であるトムは、きのこを食べおアパヌトの代金をほずんど払わなかった。 珟圚、圌はIT䌁業のシニアマネヌゞャヌであり、倧孊に融資しおいたす。「ビッグデヌタはホヌムレスを支揎したす。」



それだけで私を傷぀けたすか


このプログラムは2005幎から2009幎に䜜成され、Windows XPでうたく機胜したした。 Windowsの最近のバヌゞョンでは、プログラムがフリヌズする堎合がありたす。これは、怅子から出お再起動できない人には受け入れられたせん。 したがっお、プログラムをやり盎す必芁がありたした。



゜ヌステキストはありたせん。それが基にしおいる技術を明らかにしおいる個々の出版物しかありたせんMFCC、MLP-これに぀いおは第2郚で読んでください。



新しいプログラムがむメヌゞず肖像で曞かれたした玄3か月。



実際に、 ここでどのように機胜するかを芋るこずができたす 







プログラムをダりンロヌドするか、゜ヌスコヌドを参照しおください 。



プログラムをむンストヌルするために特別なアクションを実行する必芁はありたせん。クリックしお実行するだけです。 堎合によっおは、管理者ずしお実行する必芁がありたすたずえば、「Comfort Keys Pro」仮想キヌボヌドを䜿甚する堎合。







おそらく、ここで、手なしでコンピュヌタヌを制埡できるようにするために以前行った他のこずに぀いお蚀及する䟡倀がありたす。



頭を回す機䌚があれば、頭に取り付けられたゞャむロスコヌプがeViacamの代替ずしお圹立ちたす。 高速で正確なカヌ゜ル䜍眮ず光の独立性が埗られたす。



詳现はこちら 。



目の瞳孔のみを移動できる堎合は、芖線方向トラッカヌずそのためのプログラムを䜿甚できたすメガネをかけおいる堎合は困難な堎合がありたす。



詳现はこちら 。



パヌトII どのように機胜したすか



Vocal Joystickプログラムに関する公開資料から、次のように機胜するこずがわかっおいたす。



  1. サりンドストリヌムを10ミリ秒のオヌバヌラップで25ミリ秒のフレヌムにカットする
  2. 各フレヌムの13ケプストラル係数MFCCを取埗したす
  3. 倚局パヌセプトロンMLPを䜿甚しお、6぀の蚘憶音4぀の母音ず2぀の子音の1぀が発音されるこずを確認する
  4. 動き/マりスクリックで芋぀かった音の具䜓化


最初のタスクは、それをリアルタむムで解決するために、マむクからのデヌタの読み取り、サりンドの凊理、およびサりンドカヌドを介したサりンドの再生が非同期で発生するため、プログラムに3぀の远加ストリヌムを導入する必芁があるため、泚目に倀したす。



最埌のタスクは、単にSendInput関数を䜿甚しお実装されたす。



2番目ず3番目のタスクが最倧の関心事であるように思えたす。 だから。



タスク番号2。 13ケプストラル係数の取埗



誰かがトピックに含たれおいない堎合、コンピュヌタヌによる音の認識の䞻な問題は次のずおりです。2぀の音を比范するこずは困難です。



そしお、音声認識に携わっおいる人たちの間で、「哲孊者の石」-音波を明確に分類する機胜のセット-の怜玢がありたす。



䞀般に利甚可胜であり、教科曞に蚘茉されおいる兆候の䞭で、最も広く䜿甚されおいるのは、いわゆるメロ呚波数ケプストラム係数MFCCです。



圌らの話は、元々はたったく異なるもの、぀たり信号の゚コヌを抑えるこずを意図しおいたものですオッペンハむムずシェヌファヌぞのこの䞻題に関する有益な蚘事を曞いた、これらの高貎な倫の家に喜びがあるかもしれたせん。AVオッペンハむムずRWシェヌファヌを参照しおください。」呚波数からQuefrencyぞケプストラムの歎史 ''。



しかし、人は自分が最もよく知っおいるこずを䜿う傟向があるように構成されおいたす。 そしお、音声信号に埓事しおいる人々は、MFCCの圢で信号の既補のコンパクトな衚珟を䜿甚するこずが起こりたした。 䞀般に、それが機胜するこずが刀明したした。 換気システムの専門家である私の知り合いの䞀人が、倏の家の䜜り方を尋ねたずき、換気ダクトの䜿甚を提案したした。他の建築材料よりもよく知っおいたからです。



MFCCは音の良い分類噚ですか 私は蚀いたせん。 異なるマむクに向かっお発声した同じ音がMFCC係数の空間の異なる領域に分類され、理想的な分類噚がそれらを䞊べお描画したす。 したがっお、特に、マむクを倉曎するずきは、プログラムを再トレヌニングする必芁がありたす。







これは、13次元MFCC空間の3次元ぞの投圱の1぀にすぎたせんが、私が意味するこずも瀺しおいたす-赀、玫、青のポむントは、異なるマむクから取埗されたすPlantronix、内蔵マむクアレむ、Jabra音は単独で発音されたした。



ただし、これ以䞊良いものを提䟛できないため、MFCC係数の蚈算ずいう暙準的な手法も䜿甚したす。



実装に間違えられないように、プログラムの最初のバヌゞョンでは、よく知られおいるCMU Sphinxプログラムのコヌドがベヌスずしお䜿甚されたした。より正確には、Carnegie Mellon Universityで開発されたpocketsphinxず呌ばれるCでの実装です䞡方ずも平安あれHottabych 



pocketsphinxの゜ヌスコヌドは公開されおいたすが、それは䞍運です-それらを䜿甚する堎合は、特に以䞋を含むプログラム゜ヌスず実行可胜モゞュヌルの䞡方にテキストを蚘述する必芁がありたす。



* This work was supported in part by funding from the Defense Advanced * Research Projects Agency and the National Science Foundation of the * United States of America, and the CMU Sphinx Speech Consortium.
      
      





これは私には受け入れられないように思えたので、コヌドを曞き盎さなければなりたせんでした。 これは、プログラムの速床に圱響を及がしたしたずころで、コヌドの「読みやすさ」は少し䜎䞋したしたが、良いこずですが。 䞻に「Intel Performance Primitives」ラむブラリの䜿甚によるものですが、MELフィルタヌなどの最適化も行いたした。 それにもかかわらず、テストデヌタの怜蚌では、取埗されたMFCC係数は、たずえばsphinx_feナヌティリティを䜿甚しお取埗されたものず完党に類䌌しおいるこずが瀺されたした。



sphinxbaseプログラムでは、MFCC係数の蚈算は次の手順で実行されたす。

ステップ Sphinxbase関数 操䜜の本質
1 fe_pre_emphasis 珟圚のカりントから、以前のカりントの倧郚分が枛算されたすたずえば、倀から0.97。 プリミティブロヌパスフィルタヌ。
2 fe_hamming_window ハミングりィンドり-フレヌムの最初ず最埌に枛衰を導入したす
3 fe_fft_real 高速フヌリ゚倉換
4 fe_spec2magnitude 通垞のスペクトルからパワヌスペクトルを取埗し、䜍盞を倱いたす
5 fe_mel_spec MELスケヌルずりェむトを䜿甚しお、スペクトルの呚波数たずえば256個を40のヒヌプにグルヌプ化したす。
6 fe_mel_cep 察数を取り、DCT2倉換を前のステップの40個の倀に適甚したす。

結果の最初の13個の倀を残したす。

DCT2にはいく぀かのバリアントHTK、レガシヌ、クラシックがあり、それらは取埗した係数を分割する定数ずれロ係数の特別な定数が異なりたす。 任意のオプションを遞択できたすが、これにより本質は倉わりたせん。



fe_track_snr、fe_vad_hangoverなどの機胜は、信号をノむズず無音から分離できるようにするこれらのステップにも組み蟌たれおいたすが、それらは必芁ないので、気が散るこずはありたせん。



MFCC係数を取埗する手順の代わりに、次の眮換が行われたした。



ステップ Sphinxbase関数 倉曎
1 fe_pre_emphasis cas_pre_emphasis

フレヌム[i]経由=フレヌム[i-1] * pre_emphasis_alpha;

2 fe_hamming_window fori = 0; i <MM_SOUND_BUFFER_LEN; i ++

buf_in [i] * =0.53836-0.46164 * cos2 * 3.14159 * i /MM_SOUND_BUFFER_LEN-1;

3 fe_fft_real ippsDFTFwd_RToCCS_32f
4 fe_spec2magnitude fori = 0; i <= DFT_SIZE / 2; i ++

buf_ipp [i] = buf_ipp [i * 2] * buf_ipp [i * 2] + buf_ipp [i * 2 + 1] * buf_ipp [i * 2 + 1];

5 fe_mel_spec cas_mel_spec

事前蚈算されたテヌブルを介しお

6 fe_mel_cep CS_mel_cep

察数+ ippsDCTFwd_32f_I経由



次は 13次元の空間ベクトルがありたす。 どの音を指しおいるのかを刀断する方法は



タスク番号3。 6぀の蚘憶された音の1぀が発音されるこずを確認する



オリゞナルのVocal Joystickプログラムでは、倚局パヌセプトロンMLP、新しい絡み合ったwithoutやwithoutのないニュヌラルネットワヌクが分類に䜿甚されたした。



ニュヌラルネットワヌクの䜿甚がどのように正圓化されるかを芋おみたしょう。



ニュヌロンが人工ニュヌラルネットワヌクで行うこずを思い出しおください。



ニュヌロンにN個の入力がある堎合、ニュヌロンはN次元空間を半分に分割したす。 超平面でスむヌプしたす。 さらに、スペヌスの半分では機胜し肯定的な答えを䞎えたす、もう䞀方では機胜したせん。



[実際]最も簡単なオプション、぀たり2぀の入力を持぀ニュヌロンを芋おみたしょう。 圓然、圌は二次元空間を半分にしたす。



倀X1ずX2を入力に䟛絊し、ニュヌロンが重みW1ずW2を乗算し、自由項Cを远加したす。









ニュヌロンの出力Yで衚したすでは、次のようになりたす



Y = X1 * W1 + X2 * W2 + C



ここではシグモむド関数に関する埮劙な点は省略したしょう



Y> 0のずきにニュヌロンがトリガヌされるず信じおいたす。 方皋匏0 = X1 * W1 + X2 * W2 + Cで定矩される線は、スペヌスを単にY> 0の郚分ずY <0の郚分に分割したす。



具䜓的な数字で蚀われたこずを説明したす。



W1 = 1、W2 = 1、C = -5;







ここで、盞察的に蚀えば特定の空間の領域で動䜜するニュヌラルネットワヌクを線成する方法を芋おみたしょう。スポットは、他のすべおの堎所では機胜したせん。



図から、2次元空間の領域の茪郭を描くために、少なくずも3本の線、぀たりそれらに関連付けられた3぀のニュヌロンが必芁であるこずがわかりたす。







これら3぀のニュヌロンを別のレむダヌの助けを借りお組み合わせお、倚局ニュヌラルネットワヌクMLPを取埗したす。







たた、2぀の空間領域で動䜜するニュヌラルネットワヌクが必芁な堎合、少なくずも3぀のニュヌロンが必芁です図では4,5,6。





そしお、ここでは、3番目のレむダヌなしではできたせん。





そしお、3番目の局はほずんどディヌプラヌニングです...







ここで、別の䟋に助けを求めたす。 ニュヌラルネットワヌクで、赀い点に肯定的な答えを、青い点に吊定的な答えを䞎えるようにしたす。







盎線から青色から赀色をカットするように求められたら、次のようにしたす







しかし、先隓的にニュヌラルネットワヌクは、必芁な盎接ニュヌロンの数を知りたせん。 このパラメヌタは、ネットワヌクをトレヌニングする前に蚭定する必芁がありたす。 そしお、人はこれに基づいお...盎芳たたは詊行錯誀を行いたす。



最初のレむダヌで遞択するニュヌロンが少なすぎる堎合たずえば3぀、倚くの゚ラヌを䞎えるようなカットを取埗できたす゚ラヌ領域は圱付きです。







しかし、トレヌニングの結果ずしおニュヌロンの数が十分であっおも、゚ラヌ率が高い堎合、ネットワヌクは「収束しない」、぀たり、最適ずはほど遠い安定状態を達成する堎合がありたす。 このように、䞊郚のクロスバヌは2぀のこぶの䞊に眮かれ、どこにも残されたせん。 そしおその䞋には、゚ラヌを生成する倧きな領域がありたす。







繰り返したすが、そのような堎合の可胜性は、トレヌニングの初期条件ずトレヌニングのシヌケンス、぀たりランダムな芁因に䟝存したす。



-その車茪は、もしそれが起こったずしおも、モスクワに届くず思いたすか

-そしお、あなたぱンタニュヌラルネットワヌクが収束するか、収束しないず思いたすか



ニュヌラルネットワヌクに関連する別の䞍快な瞬間がありたす。 圌らの「忘れっぜさ」。



青いドットだけをネットに䟛絊し始め、赀いドットの䟛絊を停止するず、圌女は簡単に赀い領域を぀かんで、境界線をそこに移動できたす。







ニュヌラルネットワヌクに倚くの欠点があり、人がニュヌラルネットワヌクよりもはるかに効率的に境界を描画できる堎合、なぜそれらを䜿甚するのでしょうか。



そしお、小さな、しかし非垞に重芁な詳现が1぀ありたす。



2次元空間の線分によっお、赀いハヌトず青い背景を非垞にうたく分離できたす。



金星の像を呚囲の3次元空間から分離するのに良い仕事ができたす。



しかし、4次元の空間では䜕もできたせん。ごめんなさい。 そしお13次元で-さらにそうです。



しかし、ニュヌラルネットワヌクの堎合、空間の次元は障害ではありたせん。 私は小さな次元の空間で圌女を笑ったが、普通を超えた途端に圌女は私に簡単に支払った。



それでも、問題は未解決のたたです。この特定のタスクでニュヌラルネットワヌクを䜿甚するこずは、ニュヌラルネットワヌクの䞊蚘の欠点を考えるず、どの皋床正圓化されるのでしょうか。



MFCC係数が13次元空間にあるこずを少し忘れお、2次元、぀たり平面䞊の点であるこずを想像しおください。 この堎合、ある音を別の音からどのように分離できたすか



サりンド1のMFCCポむントの暙準偏差をR1ずしたす。これは、[倧䜓]平均から倧きく離れおいないポむント、最も特城的なポむントが半埄R1の円の䞭にあるこずを意味したす。 同様に、サりンド2で信頌するポむントは、半埄R2の円の内偎にありたす。







泚意、問題は、サりンド1ずサりンド2を分離するのに最適な線をどこに匕くかです。



答えは次のずおりです。円の境界の䞭間。 異議はありたすか 異論はありたせん。

修正プログラムでは、この境界は円の䞭心を結ぶセグメントを比率R1R2で分割したす。これはより正確です。







次に、3぀の音があるず想像しおください。 この堎合、サりンドの各ペアの間に線を匕きたす。







最埌に、空間のどこかにポむントがあるこずを忘れないでください。これは、MFCCスペヌスの完党な沈黙の衚珟です。 いいえ、13個のれロではありたせん。 これは、暙準偏差を持぀こずができない1぀のポむントです。 そしお、3぀の音から切り取る線は、円の境界に沿っお盎接描画できたす。







次の図では、各音はその色の空間の䞀郚に察応しおおり、この音たたは空間のその点たたはいずれにも圓おはたらないをい぀でも蚀うこずができたす。







さお、スペヌスは13次元であるこずを思い出しおください。玙に描くのが良かったのは、人間の脳に収たらないものであるこずが刀明したした。



はい、そうではありたせん。 幞いなこずに、あらゆる次元の空間には、点、線、[超]平面、[超]球䜓などの抂念が残りたす。



13次元空間ですべお同じアクションを繰り返したす。分散を芋぀け、[ハむパヌ]球䜓の半埄を決定し、䞭心を盎線で接続し、[ハむパヌ]球䜓の境界から等しく離れた点で[ハむパヌ]平面で切断したす。



ニュヌラルネットワヌクでは、ある音ず別の音をより正確に分離するこずはできたせん。



ただし、ここでは予玄が必芁です。 音の情報がすべおの方向で平均から等しく倖れおいる点の雲である堎合、぀たり超球にうたく適合する堎合、これはすべお真実です。 この雲が耇雑な圢状の図圢、たずえば13次元の湟曲した゜ヌセヌゞである堎合、䞊蚘のすべおの議論は圓おはたりたせん。 そしおおそらく、適切なトレヌニングを行えば、ニュヌラルネットワヌクはその匷みをここで瀺すこずができたす。



しかし、私は危険を冒したせん。 そしお、たずえば、正芏分垃セットGMMを適甚したすちなみに、これはCMU Sphinxで行われたした。 どの特定のアルゎリズムが結果に぀ながったかを理解するずき、それは垞に良いです。 ニュヌラルネットワヌクのようではありたせん。オラクルは、トレヌニングのためにデヌタからブロスを調理する倚くの時間に基づいお、芁求されたサりンドがサりンドNo. 車の制埡をニュヌラルネットワヌクに任せようずするず特にむラむラしたす。非暙準的な状況で、車が巊に曲がっお右に曲がらない理由を理解する方法は党胜のニュヌロンが呜じたのですか



しかし、正芏分垃のセットは別の倧きなトピックであり、この蚘事の範囲を超えおいたす。



蚘事が参考になり、そしお/たたはあなたの脳がきしみ音を立おるこずを願っおいたす。



All Articles