Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

音声認識について

 音声認識について

Transcript

  1. 音声認識について • 前回の画像認識に続き、今回は音声認識を調べてみたいと思います • つい3~4年前はカーナビを音声で操作して調子に乗って いた時代から ここ1~2年で 『Googleの音声認識API』 や 『Siri』

    などが利用可能となり、音声認識の分野はだいぶ 身近なものとなりました • 音声認識というとだいぶ難しいアカデミックな技術の固まりのイ メージな気がしまが、今までの Curiousさんの持つSolr(日本語解 析)やHadoop(統計解析)などの延長線上にある技術ともつなが りが深いです
  2. 音声認識処理の流れ • 音声認識システム構成 前処理部 特徴抽出部 識別部 識別辞書 あ アナログ信号 特徴抽出部

    前処理部 アナログ信号の デジタル化 ノイズ除去 特徴量の計算 特徴の選択 特徴の正規化 識別部 徴量の解析 パターン化 識別辞書 学習 あ 識別!
  3. パターン認識について • 音声認識という言葉を使っていますが、内容はクラスタリングアルゴリズムとなります • 代表的なクラスタリングアルゴリズムというと以下のようなアルゴリズムがあります アルゴリズム名 処理概要 k-means ランダムな重心計算を行い、必要な数のクラスタ (重心)を求めるアルゴリズム

    教師を必要とせず少ないデータでも手軽にクラスタ化することができる ベイズ定理 ベイズの定理は事前確率及び尤度を仮定した下で事後確率を与えるアルゴリズム SVN (サポートベクトルマシン ) クラスタ間の境界線 (サポートベクトル)のの距離が最大となるような決定境界を算出 するアルゴリズム 十分なデータがあり細かなパラメータのチューニングなどに有効 ニューラルネットワーク 人間の認識パターンを模倣したアルゴリズム ニューロンに見立てた識別関数が確率値を算出し最適なコスト (高確率)を算出するア ルゴリズム
  4. クラスタリングの学習を考察する • 教師ありのクラスタリングアルゴリズムの精度について • たとえば、『あ』、『い』といった音声を判別するパターンをクラスタリングから導き出してみます • 各『あ』、『い』と思われる音声波形は先のフーリエ変換などでベクトル化され配置されているとします • まずk-means は必要クラスタ数の重心計算となるため事前結果の傾向

    を学習するといったことは行えないので、今回は 精度向上の学習につ いてSVMアルゴリズムを用いて説明します • まずクラスタの境界値を算出します • 境界値は各クラスタの重心から一番遠い距離を直角に交わるよう算出 します • 新たに 『あ』、『い』といったベクトルが教師として追加された場合は、そ の座標を追加して境界値を算出し境界値の精度を向上させます • この境界線の傾きや位置を新たなデータを基に算出し直し判断精度を 上げていくことがクラスタリングの精度向上の学習ロジックとなります
  5. クラスタリングの学習の課題 • 本当にすごいシステムができたのか • どんどん学習させることで誤差を修正していき、鍛えていくことで万能なクラスタリングが可能なのか • パターン識別数が少なかったり境界値がはっきりしていることで 100%に近い識別結果が出ることも少なくはないようです • わかりやすいように左の図を身長

    150cm の男女比だとします • 身長150cmでは一般的に男子よりも女子のが多いので 『女子』の確立 が高くなります • 音声認識では 低い音声で 『し』、『き』で迷ったら 『き』のが確率高いと いった認識ができるようになります • 『し』、『き』など母音が同じものは人間でも聞き取りづらいものがあります • こういった境界値がはっきり出ないものについては ベイズ定理など確率か らというアプローチが効果的になります • さらに課題としては 『過学習』があります • 学習データ数よりも識別パターンが多い場合、ある一定以上の性能が 向上したところで、同一のテストデータでも認識率が下がってきます • この『過学習』が起こる手前で学習をやめることで最適な学習といえま すがコストが高そうですね。。。 • 他にも、正しくないパターン検出 • データが少なかったりする場合、偶然に検出されるパターンを信じてし まうこともあります
  6. リアルタイム音声認識 • 連続音声認識 • 聞き取りやすいように1文字づつしゃべっていたのではまだまだ実用性のないものしか作り出せません • 音声を連続認識するアプローチを記載します • 音のモデル化 •

    音を固まり(Solrでいうterm)単位で識別させる手法です • これまで形態素解析などでやってきたいろいろな識別問題の悪夢が音声を モデル化す ることで再びやってきます • 音のモデルは、最長マッチが適していると思われるのですが、全文検索のそれと違い認 識部分でノイズにより聞きこぼした部分など、『もしかして検索』のようなアルゴリズムで 救うなどの必要が出てきます • 文法の解析 • 次に紹介するJulius では 2pass での音声認識によりより精度の高い文法までの認識を実装しています • 1pass 目は 音声モデルに当ててどんどんテキスト化 • 2pass 目で形態素ライクな辞書に当て文法的な精度を確認しテキスト化 ※ 未知語が辞書内の語句に寄せられてしまいますが、文法精度は各段に上がります
  7. What is Julius • Julius とは • Julius は,音声認識システムの開発・研究のためのオープンソースの高性 能な汎用大語彙連続音声認識エンジン

    • 数万語彙の連続音声認識を一般の PC上でほぼ実時間で実行可能 • 高い汎用性を持ち,発音辞書や言語モデル・音響モデルなどの音声認識 の各モジュールを組み替えることで,様々な幅広い用途に応用ができるフ リーのツール • エンジンの中心部は,組み込み可能なライブラリの形で提供されており ,一般アプリケーションに音声認識機能を組み込めるよう設計されてい る. • プラグインを使って機能拡張することも可能 今田:イマダ:今田:512 [今田] i m a d a 今度:コンド:今度:536 [今度] k o N d o 今冬:コントー:今冬:536 [今冬] k o N t o: 今日:{キョー/コンニチ}:今日:536 [今日] ky o: 今日:{キョー/コンニチ}:今日:536 [今日] k o N n i ch i 今日:{キョウ/コンチ/コンニチ}:今日:507 [今日] ky o u ~~ snip ~~ 牧野:マキノ:牧野:512 [牧野] m a k i n o
  8. まとめ • 音(声)認識を実用化するには 既存実用化されているものでもそうかと思いますが、まだ誤認識は多く 実用性は低い • ただ『音声』ではなく『音』としてパターン認識というレイヤーに落としてしまえば認識の精度は 100%に 近しいものも作れると思え、 Curiousさんでも企画次第では面白いモノづくりへの可能性が感じられま

    した。 • ex) o 会議室内にいる人の数を検出するシステム o 人の聞こえない音声パターンを認識させ秘密の通信をシステム(モールス信号的に) o 特定の音にだけ反応するロック解除 o GPS、センサーなどの情報入力のサポートとするなど • 内容としてはクラスタリングアルゴリズムが多かったですが、意味を付加するという部分でクラスタリン
  9. HTK 個人的には お手本が 大学の教科書のような書籍で、数式とプログラミングの距離を縮められたような感覚 が収穫でした(Σなんてfor 1個じゃねーか) • だいぶ上からですが、形態素解析にしてもこの音声認識にしてもコンピュータで言う基礎研究のレベ ルを上げることの重要性を強く感じる 1冊でした

    • 連続認識もこないだの画像 (動画)などでやってみると面白そう (もうやってた、歩行から誰かを検出し たり。。。) 今田:イマダ:今田:512 [今田] i m a d a 今度:コンド:今度:536 [今度] k o N d o 今冬:コントー:今冬:536 [今冬] k o N t o: 今日:{キョー/コンニチ}:今日:536 [今日] ky o: 今日:{キョー/コンニチ}:今日:536 [今日] k o N n i ch i 今日:{キョウ/コンチ/コンニチ}:今日:507 [今日] ky o u ~~ snip ~~ 牧野:マキノ:牧野:512 [牧野] m a k i n o