ブログパーツUL5

新しい音声合成LSI

 秋月電子から音声合成LSIのATP3011F4-PUが発売された。このLSIはテキストを音声に変換出力する音声合成LSIのようである。

 このLSIはATMega328Pピンコンパチブルの音声合成エンジンを搭載したLSIで、ホストからシリアル通信を介してテキストデータを送ることによって、任意の音声(女声1種のみ)を発声させることができる。また、内部の不揮発メモリ(EEPROM)にデータを保存して、ホスト無しでフレーズを発声させることもできる。電源電圧は3〜5Vなので使いやすいと思います。

 詳細な技術資料は秋月電子からダウンロードできる。また、音声合成LSIのメーカーサイトに、LSIからの発声音が聞けます。ROBOZAKやRZ-1の音声としてはあまりフィットしませんが、発声音の自由度はかなり広がりが出ます。

 同じように自由度のある音声認識LSIがあるといろいろなことが出来るのですが、ROBOZAKの音声認識モジュールでは認識する言葉が固定されているので広がりがない。やはり、ロボットには音声認識と音声合成がペアで動作しないと搭載できない。いづれ、機会があったら試したみたいLSIである。


0

    APR9600をPICマイコンでコントロール

     PICマイコンのソフトを作成して、MR-C3024でコントロールできるか試行錯誤しながらチューニングしました。roboNBASICの命令実行時間がわからないので、MR-C3024のデジタル系の出力波形を観測しながら、PICマイコン(16F628A)を介してAPR9600モジュールから指定した音声が出るかテストしながら、タイミングを調整しました。
    通信仕様では時間が長すぎるので、コントロールできる範囲で時間短縮を行ない、半減させました。

     コントロール用16F628AのHEXソフトは下記からダウンロードできます。
    8mode_sw.HEX(ウィルスチェッ済)

     動作させるために作成したMR-C3024用のroboBASIC(v2.72)のテストプログラムも以下のようにしました。
    (テストのためRZ-1ジュニアを使用しました)
     リモコンの1〜8のボタンを押すと、それに対応してAPR9600から8つの音声がそれぞれスピーカーから出てくることを確認できました。各マイコンの発振周波数の誤差がある場合もあるので、DELAY時間は微調する必要があるかもしれません。これでMR-C3024のデジタル系の1端子のみで音声をコントロールできるようになりました。
    0

      APR9600のコントロールを検討

       APRO9600の動作確認ができたので、次はRZ-1のMR-C3024からどのようにコントロールするかを検討しないとRZ-1に搭載できません。MR-C3024のUARTとI2Cはすでに使用済みなので、そのインターフェイスは利用できないという制限があり、残るはデジタルI/Oポートで行なうしかなく、どのようにするか検討しています。

       現在、考えていることは識別コードは要らない単純な通信でいいのではと思っています。したがって、SW1からSW8を区別するのを、パルス幅かパルス数を検知して行なう方法しかない。パルス幅で検知する場合、例えば、50msでSW1から400mSでSW8がONする。パルス数を検知の場合、パルス1個ならSW1がONになり、パルスが連続して8個ならSW8がONになるという通信であれば、可能なように思うが、何をトリガーにしてカウントするかが問題である。

       実験して波形確認してみないと、確定的には言えないが可能性は高そうである。弱点はノイズによる誤動作が心配であり、テストしながら仕様を決めることにした。最初はマイコンのコントロールでAPR9600がうまく動作せずタイミングなどを調整してみました。

      テストして決定したのが、以下のような通信仕様にしました。
      ・RA1のみ入力で、RB0〜RB7全てを出力にする
      ・発振は内部発振を利用
      ・パルス幅は50mSとする(SW動作なので高速動作させない)
      ・1コードは800mSとする
      ・1パルス目がスタートビットとして認識する
      ・2パルス目からSW1〜SW8に対応したビットにする
      ・パルス幅でもパルス位置でも検出できるようにする
       →最終的にHになっているビットを検出して判定
      ・出力後、すぐにリセットする(8ビットまで待たない)

      通信のタイミングチャート
      タイミングチャート
       マイコンは発振子を無くして内部発振を使うので、PICマイコンの16F628Aを利用します。16F628Aのソフトも書き込みましたので、MR-C3924でうまく動作するかをテストする必要がありますが、MR-C3024のデジタル系端子はバッテリー電源なので、5Vではなく7.5V位になりますから絶対最大定格を越えてしまいます。従って、三端子電源で5Vに落とさないといけないことになるが、モジュールに載せられるかが問題である。載せられない場合には、電源とGNDはアナログ系から接続すれば可能である。
      0

        APR9600再生専用モジュールの製作

         ロボットの搭載するのには録音機能は使わないので、APR9600を再生専用で動作させるようにして小型化することにしました。しかし、APR9600の再生音が小さいようなので、出力アンプをを追加しました。さらに、タクトSWの代わりにPICマイコンでコントロールするように変更しました。

        (1)出力アンプの検討
        386応用回路 手持ちに386Bがあったので、386BのOPアンプを利用して出力アンプを組み込むようにしました。386Bのデータシートから応用回路を参考にして、単電源なので入力と出力をカップリング容量でDC成分をカットします。

         出力端子の0.047μFと10Ωは発振防止で、電源側の容量もノイズ低減と発振防止のために必要で省略しない方がよい。


        (2)再生専用回路
        再生専用回路(訂正版)
        ・APR9600の周辺回路で録音時に必要な部品と回路は削除する。

        ・切替えジャンパーも固定にする。
         再生モード固定で、8音声選択

        ・出力アンプを追加
         スピーカーは8Ω

        ・コントロールするPICマイコンを追加
         (マイコンソフトは暫定でまだ未完成)


        (3)再生専用基板の部品配置検討
        APR960再生専用モジュール
         上記の回路を出来る限り小型なモジュールするために部品配置を検討する。

         いろいろ試してみましたが、APR9600用のソケットの内側にも部品を配置することでなんとか実現しました。



        (4)APR9600の録音再生評価基板と今回の再生専用基板の比較
        基板の比較
         回路は増えましたが、評価基板の半分以下のサイズで再生専用モジュールが出来上がりました。

        右側が録音再生評価基板
        左側がアンプ付再生専用基板

         なお、APR9600が安いのでソケット代にプラスして予備にもう1つ購入して、東芝の音声合成によるリアルな音声も録音してみました。


         今後、MR-C3024からコントロールしてうまく音声が出るかの綜合テストをしながら、PICマイコンのソフトを作成していきます。
        0

          ロボット的な音声の音声合成

           APR9600に録音する音声は自分の音声でも出来るのですが、ロボット的なというか機械的な音声にしたくて音声合成ソフトを調べていたらちょうど良いものが見つかり、電子工作工房の「音声、録音・再生、APR9600を考察する」を参考にさせてもらいました。

           まず、解析エンジンMeCabをココからmecab-0.98pre3.exeをダウンロードして、インストールはデフォルトパス("C:¥Program Files¥MeCab")へ必ず行います。

           MeCabのインストールが済んだら、次は音声合成フリーソフト「青空ろーどく」は任意の場所にインストールする。以上の順にインストールすれば、問題なく動作するはずです。

           なお、青空ろーどくの設定音声を変えるには、¥AozoraRohdoku¥AquesTalk¥bin¥の下にある AquesTalkDa.dllとAquesTalk.dllをその下のディレクトリ(ロボット声1、・・・、中性的な声1)にあるAquesTalkDa.dllとAquesTalk.dllをコピーして置き換える

           動作環境が整ったら「青空ろーどく」を起動して、簡単にテキストまたはテキストファイルを音声合成できるので、その結果を聞くこともでき、音声ファイルとしても保存できます。APR9600の録音時間が短いので、1メッセージの音声は5秒以内に収まるようなにテキストを書いて、その音声は「青空ろーどく」の速度で調整する。
          「青空ろーどく」画面
           音声合成は満足できるレベルで、PCのスピーカから音声を出したAPR89600の評価ボードのマイクで録音するようにします。音声は大き目にします。APR89600のスピーカ駆動は非力なので、アンプが必要なようです。

           「青空ろーどく」で作成したサンプル音声で確認できます。

          MeCab (和布蕪)とは
           MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所共同研究ユニットプロジェクトを通じて開発されたオープンソース形態素解析エンジンです。
          0

            「MICRO TALK」という音声合成LSI

             本格的な音声合成LSIとして株式会社アクト・ブレインから「MICRO TALK」というLSIを見つけました。詳細な技術資料は、ATS001A/B 技術資料 Ver.1.16をご覧ください。
             二足歩行ロボットに載せるのには機能的に最適な音声合成LSIのようですが、パッケージが半田付けしにくい100pinのLQFPなのが難点です。ここまでピン数は必要がないように思いますが、LSIチップが大きいのでこのようになったのでしょうが、不要ピンを減らしてピン数の少ない小型パッケージにしてほしいものです。

             I/O 制御端子(/D11〜/D0)から音声データを制御することもできますが、UARTがあるのでロボットに搭載する時にはシリアル通信になるので不要となります。データは外付けのシリアルEEPROM I/F(I2C)に格納されるのは便利ですが、容量が512MBと小さく256メセージなのがちょっと心配です。なお、電源電圧が3.3Vですから音声出力にはにJFET 入力に音声アンプが必須となり、さらにLPF回路でノイズを減衰してからでないと直接スピーカを駆動することは出来ません。

            千石電商でも扱ってますので、店頭かインターネットから購入できるようです。
            規則音声合成LSI
            規則音声合成LSI評価キット
            0

              録音再生APR9600の試作

               RZ-1の音声合成の検討をしていますが、その1つ代案として秋月電子で扱っているAPLUS社(台湾)のAPR9600という録音再生のLSIを使って見ようと試作してみました。音声合成に拘っていないので録音再生の機能で音声出力が実現できればそれでもよいと思います。他にも録音再生のLSIがありますが、APR9600がもっとも低コストでかつ簡便に実現できるようなので、RZ-1の音声機能の第1案としました。

               下記のようにAPR9600データシートが色々あるので参考にしてください。
              (1)APR9600データシート(PDF)
              (2)APR9600データシート(PDF)
              (3)APR9600データシート(PDF)

               (1)が一番詳しいようなのでこれに載っている回路を参考にしました。掲載されている4つの回路を切り替えてすべてのモードが評価できるように、APR9600の評価ボードを製作してテストしてみました。4つのモードで基本的な録音再生の機能は動作することを確認しましたが、再生音が小さく録音時には大きな声で行う必要があり、簡単な出力アンプを追加する必要がありそうです。製作したのは評価用なのですが、それにしても600milの28pinnのLSIは大きすぎて、不要な部品を省いてもサイズ的にRZ-1へ搭載するのは厳しいかもしれない。サイズも今後の検討課題になる。

              ●データシートにあった4つの基本回路
              APR9600回路
              ●ジャンパーピンでモード切替
              モード切替
              ●DIPスイッチで録音時間設定(クロック用抵抗)
              録音時間設定

               製作したAPR9600の評価ボードの回路図
              APR9600評価回路

               製作した基板(タクトSWの4個はまだ未搭載)
              APR9600回路基板 このAPR9600回路基板をどのようにコントロールするかその方法を検討する必要がある。
              0

                音声合成の検討

                 ROBOZAK(RZ-1)の機能で不足しているのが、音声合成です。簡単な音声認識は標準装備していますが、音声合成の機能がないため、音声での命令はできても返事がありません。一時はID01の音声認識/音声合成モジュールを搭載しようと調べていましたが、仕様がわからずカスタマイズもできないので搭載を諦めた経緯があります。
                 その代わりにRZ-1に搭載しているLCDに返事を表示するようにしていましたが、やはり、ロボットからの返事がないとさびしいものです。
                 音声認識は高度なファームウェアを必要としますので専用LSIが必要ですが、音声合成はそれほどではないので、PICマイコンでも音声合成を実現できるのではないかと思い、いろいろと探してみました。フラッシュメモリを内蔵した音声録音再生のICもありますが、手始めにPICマイコンを使用した簡単な音声合成に取り組んでみようと思います。

                 そのままではロボットに利用できませんが、参考になるサイトとして2つほど見つけました。
                しゃべる豚しゃべる豚のキット
                8ピンPICで作る喋る時計

                 キット
                ●専用ICのISD1700シリーズを使用したロボット・装置がしゃべる!

                音声合成回路基板
                 現在、手持ち部品でしゃべる豚を試作中で、AT24C1024のEEPROMがないのでAT24C512で代用しようとしていますが、うまくいっていません。

                 専用IC(ISD1700やAPR9600など)は大きいのですが、録音時間は短いですがなかなか小型の出来ますね。

                0

                  1

                  カレンダ

                        1
                  2345678
                  9101112131415
                  16171819202122
                  23242526272829
                  30      
                  << April 2017 >>