ブログパーツUL5

音声認識/音声合成モジュールで録音/再生

 ID-01の音声認識/音声合成モジュールで録音して再生することに成功しました。推測ですが、端子3の信号(IRQ1)のタイミングで2つ目のコマンドを認識しているようです。そのため、この信号でLEDを点灯させる必要があります。

 自作マイクでテストしていましたが、認識率を上げるのにはマイクのインピーダンスがマッチしていないと駄目なようなので、結局、MyRobotのパーツ販売で純正部品を購入しました。マイク本体はROBOZAKのものと同サイズですが、外装のゴムが若干違うようです。音声認識の認識率を上げるには絶対的に周囲は静かでなければいけません。マイクを変えたことで、認識できる距離は1m程度離れていてもしっかりと認識してくれます(テストは休日の早朝、テレビは音を消して)。

 LEDの点灯を見ながら、初めて録音、再生、消去のコマンドを認識して実行することが出来ました。でも、スピーカーが小さいこともありますが、1mも離れていると録音した音はボソボソという音になりますので、録音の時は50cmぐらいに近づくとうまくいきます。

 詳細な仕様はネットで調べてもありませんでした。しかし、RZ-1の動作とリンクしないで、音声合成だけならば、電源とスタートのボタンさえれば、問題なく動作することが分かりました。通信ポートにはROBOZAKの音声認識モジュールからの信号を接続したままにして、このモジュールは単独動作させることにします。問題は、無線受信機とこのモジュールが搭載できるかとなった。
0

    音声認識/音声合成モジュールの端子名

     音声認識/音声合成モジュールの接続先について、ID-01の場合の端子名がわかりました。 "noritan"の趣味の部屋では、端子は次のようになっています。

    1:PTB3/RxD
    2:PTB3/TxD
    3:IRQ1
    4:PTA5/ADC5
    5:VDD
    6:GND

     音声認識ボードとの通信にはSCIが使用されているようです。加えて、ハードウェア割り込みも使用されています。 TxD端子は、オープンドレイン出力の機能しかもっていません。このため、ボード上にプルアップ抵抗が配置されています。というコメントがあり参考になります。

    0

      音声認識モジュールのI/F回路


       ID-01用の音声認識/音声合成モジョールには、5V系回路とのインターフェイス回路が必要です。モジョール用の3V電源とレベルシフト回路が必須のために、どうしてもRZ-1に搭載するには必須となります。まだ、信号ラインの動作はちゃんと解析出来ていませんが、回路接続ではこのようになり問題ありません。アナログOUTは、RZ-1には認識率改善のソフトを搭載できないので不要となります。

       参考に、回路図を載せておきます。

      〔追伸〕
       端子3(デジタルOUT)からLED駆動回路に接続したところ、面白いことが分かりました。目測ですが5秒間隔で、2回LEDが点滅します。音声認識のタイミング信号のようです。詳細は不明で、音声の有り無しに関係なく、出力(通常はLowで点滅はHi)していました。
      0

        マイクを自作してID-01の音声認識/音声合成が動作

         ID-01の音声認識/音声合成モジュールのために、コンデンサーマイク部品を自作しました。注意点はコンデンサーマイクは2端子ですが、片方の端子は外形のシールドも兼ねているので、こちらの端子をGNDにします。そのためにモジュール側もGNDがありますので、2芯シールドを使って2端子の片方をGNDとしてシールド線も接続します。その端子がコンデンサーマイクのGNDになります。

         自作したマイクに接続端子(2mmピッチ)を装着して、音声認識/音声合成モジュールに接続します。さらに、ROBOZAKとの通信ができるように信号ラインの間にレベルシフト回路を入れます。すでに、テスト済みのNch-MOSの双方向レベルシフト回路を入れますが、小さくするためにミニモールト品で製作してみましたが、見事、半田付けに失敗しました。半田付けでリードを無理に曲げたので、折れてしまいました。そこで、小形のSK1132という製品に切替えてコネクタの端子間に回路を挿入して製作しました。

         早速に、静電破壊していないかも含め、双方向レベルシフト回路の動作確認をしてから音声合成のテストします。起動した後の「こんにちは、ID-01です」に続いて、見事、「こんにちは」の音声認識に成功して、「こんいちは」の音声合成がスピーカーが出てきました。そのほかに、「ありがとう」、「ID-01(アイディーゼロワン)」、「メッセージ」、「アクション」などが認識してくれましたが、認識率は今一で「こんにちは」だけはよく認識してくれました。ID-01のようにLEDを装備していないので、複雑な音声の発生タイミングがわからないので、2語コマンドなどはなかなかに認識できません。メッセージの録音、再生はまだ成功していません。

         やっぱり、発声のタイミングを教えてくれるLEDは必要かもしれません。ID-01の公式サイトに認識率を上げるための発声の例があるので、練習すればLEDがなくても可能になるかもしれにので、ちょっと練習してみるかも。

        〔追伸〕
         端子1と端子3は音声認識すると、変化しているのようです。いろいろ試してみて、少しづつ分かってきたので、まあ、一歩前進というところでしょうか?
        0

          ID-01の音声認識のコマンド体系

          ID-01の音声認識のコマンド体系は、ROBOZAKの音声認識のコマンドとは大きく違い、かなり複雑な体系になっています。6つのワードセットからなっており、マザーマイコンとの組合せで動作するのも含まれています。頭を動かすことやサウンド追跡モードなどはそのような動作です。
           コマンドには、1語で動作するものと、2語が組み合わって動作するものとがあります。スリープモードだけは、「おやすみ」という音声でモードに入り、手を2回たたくと解除できます。また、録音は16秒もすることが出来ます。

           RZ-1に搭載する時には、マイコンとの通信が明確に解析できない限りワードセット3、7は使用できません。また、ワードセット4は、解除できなくなるので、パスワードは有効にしないようにします。

          ID-01の音声認識と音声合成の関係
          (電源投入で起動)→「こんいちは、私はID-01です」
           「こんにちは」 →「こんにちは」
           「ID01」  →「何ですか」または「私はここです」
           (発音:アイディゼロワン)
           「ありがとう」 →「どういたしまして」
           「アクション」 →「OK」
           「おやすみ」  →「OK、おやすみなさい」
          などがあります。

          拡張すると
           「格好いい」  →「あなたのようにね」
           「可愛い」   →「私のことを気に入ってもらってうれしい」
           「いい子」   →「ありがとう」
           「まぬけ」   →「だれに」
           「へんなの」  →「自分は格好いいとでも」
          「つまらないやつ」→「かなしいやつ」
           「調子はどう?」→「良好です」
          などもあるようです。

           発音はローマ字読みのような感じで聞こえるということです。私は、電源投入で起動した時の「こんいちは、私はID-01です」というのしか聞いていません。
          0

            音声認識/音声合成モジュールの回路は?

             今週はお天気が悪く外出しなかったので、じっくりと音声認識/音声合成モジュールの回路図を解析してみました。基板が小さくパターンが読みにくく、ICパッケージの下にパターンがあるので、一部は推測して回路図にするのに苦労しました。なお、容量は推定ですのでご了承ください。抵抗はチップ抵抗の数値から虫眼鏡などで拡大して読み取りましたので、多少、読み間違いがあるかもしれません。

             正確性にまだかけていると思うので、間違っている所があれば、ご指摘ください。修正していきたいと思います。


            2008/8/24時点で第1版です。(クリックすると拡大します)

             マイク入力は、RSC-4128内蔵のA/Dに入力しており、LM358のOPアンプの出力は、端子4に出ておりマザーマイコンへのアナログ出力となっているようで、RZ-1に搭載する場合には不用である。
             問題は、端子1〜3までの端子で、一応、RxD、TxD、I/Oポート(不明)となっていると思われる。RxDとTxDを接続しないで音声認識して返事を音声合成できれば、いいのでその方法を試行錯誤することになります。

            注意:パスワードをかけると認識できなくなった時に、Blutoothからしか解除できないようなので、パスワードをかけないようにします。
            0

              音声認識/音声合成モジュールを入手

               ID-01の音声認識/音声合成モジュールは、Bluetoothモジュールと同じように、インターネントのFujisan.co.jp で購入することが出来ました。
               MY ROBOTの38号は在庫僅かになっているようでしたが、1週間後の本日、郵便で届きました。但し、このモジュールに関する情報はほとんどなく、購入は慎重に自己責任でお願いします。

               取り合えず、電源とコネクタ、スピーカーの接続できるように組んでみました。マイクはROBOZAKのものを流用して、簡単なテストすることにしました。かなり静電気に弱いらしくアルミホイルを敷いて作業をすることにしました。テストではスピーカーは一番小さいもので試作してみました。サイズ変更は半田付けで出来るので、コネクタピンで接続するように加工するよりも簡単である。

              モジュールサイズは53mm×32mmもあり、意外と大きいのでどうもRZ-1への搭載は難しそうである。

              【ID-01音声認識/音声合成モジュールの仕様】
              まず、RSC-4128の仕様を参照してください。

              最高性能認識ソフト Fluent Chip™ 2.0

              ・T2SI(TextToSI)対応。最大40語/セットを認識。
              ・複数ワードのワードスポッティング機能
              (SI-20ワード、またはSD-5ワードまで同時認識)
              ・RSC-4xハードに対応した最新認識技術を採用
              ・ノイズ・ロバスト特定、不特定話者
              ・オーディオ・ウエイクアップ機能
              ワンチップソリューション
              ・高速8-bitマイクロコントローラ
              ・16bitADC、10bitDAC、マイクアンプを内蔵
              ・3.58MHzからPLLにてマスタークロック生成
              ・4.8KByte RAM(ユーザー256Byte)を内蔵
              ・3種類のタイマー内臓
              ・2種類のDMA、VectorAccelerator内蔵
              ・外部メモリー20bitアドレス、8bitデータ(RSC4128)
              ・アナログコンパレータ内蔵
              ・24x24マルチプライヤを内蔵
              低消費電力・動作電圧は2.4V〜3.6V
              ・標準消費電力は12mA@3V
              ・低消費電力モードで5uA以下
              高性能音声認識と合成
              ・不特定話者認識(speaker-independent)
              ・特定話者認識(speaker-dependent)
              ・3.7Kbps〜の最新の‘SX’音声合成技術
              ・8音源による音楽合成。
              ・AGCによる音声入力レベル自動調整。

              (1)まず、電源電圧を3.3Vでもいいのですが、推奨通りに3V標準として、三端子電源ICでRZ-1のマイコンからの電源(5V〜6V)から3Vにしてから音声認識/音声合成モジュールにコネンクタで供給します。テストでは、乾電池4本で6Vで供給してテストしました。

              (2)本には、マイク、スピーカー、マイコンへのコネクタの接続については記載されていますが、コネクタの端子の説明がないので、モジュールのプリント基板のパターンを辿って、端子を調べました。
              ・マイク  :左側がMIC-IN+シールド線、右側がMIC-INです。
              ・スピーカー:極性はありませんがPWMで動作しているようで、接地は不可
              ・マイコン :端子4が、アナログ出力、端子5がGND、端子6がVdd
               端子1〜3はRSC-4128のI/Oポートのようですが、ICの下にパターンあるので接続の確認が出来ません。テスターで確認してもいいのですが、静電破壊しそうなので止めました。

              (3)RSC-4128にはUART専用端子がないので、マイコンとの通信は通常I/Oポートをソフトでコントロールしているようです。デジタルオシロがないので、詳細はわかりません。少なくと端子3はRSC-4128の40ピン(P2.1)に繋がっています。

              (4)SENSORY社の推奨回路図を見ながら回路を追ってみますが、三端子のミニモールドが何の素子かわからないので、解析しきれませんでした。

              恐る恐る電源のスイッチを入れるも、暫くは起動する時に「こんにちはID01です」と音声が出ていましたが、いろいろテストしているうちに音声が出なくなってしまいました(壊れたのかな不安ですたらーっ)。そこで、電源投入後に端子2を100KΩでローにするとまた音声が出るようになりました。

              どうも端子1〜4を接続しないとうまく動作しないのかもしれません。暗中模索状態ですが、もう少し調べることにします。また、ID-01としての音声認識のコマンド体系は本(MY ROBOTの38号)に詳しく書かれていますので安心です。モジュールのカスタマイズはブレインボード(ID-01のLINUXマイコン)がないと出来ないようです。
              0

                音声認識/音声合成モジュールの搭載計画

                 Bluetoothに続いて、ID-01の音声認識モジュールを搭載できないか検討しています。しかし、情報が少なくマイコンとの接続にモジュールのコネクタに何が出ているのかさえわかりません。

                 まず、ID-01の音声認識モジュールが購入できるのかが大きな問題であるので、MY ROBOTの38号を購入できるか問い合わせをしています。いろいろ調べて音声認識と音声合成ができるモジュールで、外付け部品はコンデンサーマイク(ROBOZAKのものと同等)とスピーカー(?Ω)だけです。電源電圧は多分、3.3V(Typ)のようです。(写真がID-01用音声認識モジュール)

                 現段階では、最悪、RZ-1用とID-01用の音声認識モジュールを2つ搭載するかもしれません。ID-01用は会話用にして、RZ-1用は動作用に使い分けるのもありだと思います。ID-01用のモジュールで動作まで出来ればいいのですが、音声の命令が固定なので、コマンドとしてフィットしないものもあります。そこらへの調査と合せ込みが必要です。

                 ID-01用音声認識モジュールには、センサリ社のRSC4128という音声認識合成制御マイコンとフラッシュメモリ(1Mbyte)が搭載されています。メモリを搭載している分、ROBOZAKのモジュールより高機能です。
                0

                  音声認識のプログラム

                   音声認識.BASを見てみると、1115行付近にVOICECONTROLSTART:という飛び先があり、音声認識のルーチンがここにあります。通常動作の時に電源SWを押すと、音声認識に切り替わるようです。
                   マイコンボードと音声認識ボードとはUARTの通信で行われるようです。通信速度は9600bpsで指定されていました。コマンドの番号を音声認識と通信している部分です。

                  'Read Command ID
                  ERX 9600,RXD,VMAIN
                  A = RXD - 128

                   マイコンボードへは送信のみで、待機状態の時はLEDが消灯して音声認識するとLEDが点灯するように組まれていました。とり合えず、10個ほどのモーションが組まれていますが、これにモーションを追加するのは簡単です。問題は音声認識率と音声とIDの関連付けをどのようにするのか、まだ不明です。
                   まさか番号をいうような無粋な音声認識かな?今頃になって心配になってきました。そんなのであれば、リモコンの方がマシだと思いますが。

                  【修正】
                  1.音声認識を動作させるには。リモコンの赤SWを押すと音声認識モードに入り、LEDが消灯します。
                  2.次に、マイクに向って「ロボザック」と呼びかけて、LEDが点灯するので、点灯しているうちに「*****」(コマンド)を言うと動作します。

                  現在分かっているコマンドは、「こんにちは、歩け、下がれ、左へ、右へ、ダンス、腕立て、バイバイ、リモコン」です。

                  最後の「リモンコン」のコマンドで、音声認識モードを抜けて通常のリモコン操作が使える状態に戻ります。
                  0

                    音声認識ボードの予告

                     ROBOZAKの72号で音声認識ボードが提供されるようです。これは購入する必須アイテムで待っていたものです。しかし、スペックが公開されていないのでどんなものなのか全くわかりません。

                    ROBOZAKのHPには、下記のように紹介されています。
                    音声認識モジュールを取り付ける
                    RZ-1がユーザーの声で反応するようになる、音声認識モジュールを組み立て、マイコンボードに接続する。ソフトウエアのコーナーでは音声認識プログラムをダウンロードする。』

                     すでに音センサーが供給されており確保してありますが、どうも音センサーとは別に音声認識ボード用のマイクがあり、71号で提供されるようです。音声認識ボードのスペックが分からないので、71号を購入するか迷うところですが、アンプを作るつもりであれば、71号を購入する必要はないかもしれません。音声認識ボードを手に入れて実験をしながら、考えることにしました。

                     皆さんはどうするのでしょうか?

                     この音声認識がうまくいけば、声で指示できるようになりますので、「前に進め}、「右に避けろ」、「逆立ち」などできますから、反応速度にもよりますが、コントロールがなくてもRZ-1が指示通り動くようになり楽しさが倍増しそうです。
                    0

                      1

                      カレンダ

                           12
                      3456789
                      10111213141516
                      17181920212223
                      24252627282930
                      31      
                      << March 2024 >>