音声認識
音声認識(おんせいにんしき、speech recognition)は声がもつ情報をコンピュータに認識させるタスクの総称である。ヒトの(天然)音声認識と対比して自動音声認識(Automatic Speech Recognition; ASR)とも呼ばれる。
例として文字起こしや話者認識が挙げられる。
音声認識は「音声に含まれる情報を認識するタスク」の総称であり、具体的に解かれる問題の例として以下が挙げられる:
Speech-to-Text (STT): 含まれる言語情報を文字に変換するタスク。いわゆる文字起こし
キーワード認識(KWS): 事前に設定されたキーワードの出現を認識するタスク。例として「ヘイ、Siri」
音声認識をサブタスクとして含むタスクには以下が挙げられる:
音声操作: 音声によるアプリの操作。SST/KWSで音声情報を取り出し、これをコンピュータ操作命令へ変換
音声入力: 音声によるアプリへの文字入力。SSTで文字化、整形ののちアプリへ引き渡し。ディクテーション(聞き取り)とも
音声認識では、統計的手法が良く用いられている。これは大量の発話を記録した学習用データから音声の特徴を蓄積し、認識対象となる入力音声から抽出された特徴と蓄積された特徴とを比較しながら、最も近い言語系列を認識結果として出力する手法である。
一般に、音声の音響的な特徴と言語的な特徴を分離して扱うことが多い。音響的な特徴とは、認識対象の音素がそれぞれどのような周波数特性を持っているかを表したもので、音響モデルと呼ばれる。音響モデルの表現としては、混合正規分布を出力確率とした隠れマルコフモデルが広く用いられている。言語的な特徴とは、音素の並び方に関する制約を表したもので、言語モデルと呼ばれる。例えば、「あなた (a n a t a)」という発声の直後には、「が (g a)」や「は (w a)」などの発声が続く確率が高い、などの制約である。言語モデルの表現としては、認識対象の言語が大規模な場合(パソコン上での文書作成など)はn-gramが良く用いられ、認識対象の言語が人手で網羅出来る程度に小さい場合(カーナビの音声操作など)は、文脈自由文法が良く用いられる。
動的時間伸縮法(Dynamic time warping、DTW)は初期の音声認識手法であるが、隠れマルコフモデルに基づく手法が一般化したため、使われなくなった。時間または早さの異なる2つの信号シーケンスの間の類似度を測るアルゴリズムである。例えば、人間の歩行のパターンは、素早く歩いても、ゆっくり歩いても、さらには歩行の画像を早送りしてもスロー再生しても一定のパターンが存在する。DTW は音声だけでなく動画などの任意の時系列のデータに適用可能である。音声認識においては、発声速度がどうであっても一定のパターンを検出するために使われていた。従って、比較のための標準パターンが必要であり、認識できる語彙は限定される。
音声信号は、断片的あるいは短時間の定常信号と見ることができ、隠れマルコフモデル(Hidden Markov Model、HMM)が適用可能である。すなわち、10ミリ秒程度の短時間でみた場合、音声信号は近似的に定常過程と見なすことができる。従って、音声を多くの確率過程のマルコフ連鎖と考えることができる。
また、隠れマルコフモデルによる音声認識は自動的にトレーニングされ、単純で計算量もそれほど多くない。音声認識について考えられる最も簡単な設定では、隠れマルコフモデルは10ミリ秒ごとに例えば13次元程度の実数値ベクトルを出力するだろう。このベクトルはケプストラム係数から成る。ケプストラム係数は短時間の信号のフーリエ変換にコサイン変換を使って、その第一(最大)係数を取り出したものである。隠れマルコフモデルは、それぞれの観測されたベクトルの尤度を与える対角共分散のガウス分布の混合ともいうべき確率分布を持つ傾向がある。各単語や各音素はそれぞれ独自の出力分布を持つ。単語列あるいは音素列に関する隠れマルコフモデルは、個々の単語や音素の隠れマルコフモデルを連結したものとなる。
これらが隠れマルコフモデルを使用した音声認識技術の概念である。音声認識システムにはこれ以外にも様々な技術を使用している。語彙の多いシステムでは、音素について文脈依存性を考慮する。また、話者間の違いや録音状況の違いを正規化するために、ケプストラムの正規化が行われる。他にも話者正規化の試みとして、男女間の正規化のための声道長正規化 (VTLN) や、より不特定多数の話者に対応するための最尤線形回帰 (MLLR) がある。
音声認識は様々な指標を用いて性能を評価される。例えば速度は実時間係数 (real time factor, RTF)で表される。
単語誤り率(word error rate; WER)は認識された「単語」の誤り率である。WERを評価するための代表的なコーパスとしてWSJコーパスが挙げられる。
文字誤り率(character error rate; CER)は認識された「単語」の誤り率である。letter error rate; LER とも。WER評価と共に行われる場合が多い。2019年時点でのWSJコーパスに対するCERは1%を切っている。
音素誤り率(phoneme error rate; PER)は認識された「音素」の誤り率である。PERを評価するための代表的なコーパスとしてTIMITが挙げられる。2019年時点でのTIMITコーパスに対するPERは10%を切っている。
実地での音声認識利用には様々な難しさがある。以下はその一例である:
発話方法(フォーマル、日常会話)
話者の音声の特徴量が雑音や特徴分離処理によって歪むと音響モデルとの差が開いて誤認識の元となる。得られた音声の特徴量に歪みや雑音がどの程度含まれているかを推定し時間軸と周波数軸に対して信頼度をマップとして持たせて、低信頼度の特徴量にはマスクをかけたり、失われた音声を復元する処理に活用するのがミッシング・フィーチャー理論(Missing feature theory)である。
GSS(Geometric source separation)は複数の音源を分離する技術であり、音源間に相関が無ければ複数のマイクからの入力情報によって比較的簡単に音源分離とその位置情報(音源定位)が得られる。これをMFTの雑音情報として信頼度マップに反映させれば、騒音下や同時発話の状況でもそれほど認識率を落とさずに済む。
Macintoshでの音声認識機能は、1993年のQuadra 840AV/Centris 660AVより、PlainTalkとして搭載された。Mac OS 9では、音声認識パスワードによるログイン機能も搭載されている。macOS Sierraからは、音声認識アシスタント機能のSiriが搭載され、様々な操作が可能になった。2021年10月15日
Windows VistaとWindows 7では音声認識機能が搭載されており、この機能を使用して、キーボード入力なしにチャットをするなどの操作が可能となっている。音声認識機能でパソコンを操作するといった利用方法はこれまでにもあったが、日本語の認識率を向上させているほか、マウスやキーボードで行うWindowsの操作が音声で操作できるようになっている。Windows 10からはCortanaという音声認識アシスタント機能が搭載され、さらに様々な操作が可能になった。(Windows PhoneではWindows Phone 8.1から搭載されていた。)
マイクロソフト社は音声認識技術を開発するニュアンス・コミュニケーションズを買収している。
Google Cloud Platformの Speech-to-Text API
企業、病院、自治体では、2005-6年頃から次第に次のような実用システムの導入が活発化してきている。
コールセンター向けオペレータ支援・通話内容分析システム
携帯端末(スマートフォンなど)へのメール文章入力
同時通訳型の機械翻訳、自動通訳
パソコン上での文書作成(口述筆記の自動化)
音声指示による機械操作(カーナビ、電子カルテ等のハンズフリーコンピューティング)
指示を聞き分けるペットロボット(ロボット工学への応用)
音声対話受付案内システム(自動音声応答装置)
裁判員制度での評議における証言内容などの確認(映像と文字の連動)
(音声認識や対話を体験できるWebサイト)
「感性制御技術」(Sensibility Technology=ST)などと組み合わせることにより、例えば「ごめんなさい」も口先だけで軽く言った「ごめんなさい」も同じ「ごめんなさい」でしかないが、早口で軽いトーンの「ごめんなさい」は、バカにしていると判断して怒った態度で接したり、ゆっくり丁寧に発音された「ごめんなさい」は、心からの謝辞だと理解して許したりすることが可能となる。
Nuance (2021年4月12日、マイクロソフトによる買収発表)
IBM IBM ViaVoice - IBMから買収
(人同士の自然な会話に対応した音声認識ソフト、コールセンター向け)
(議事録向けの音声認識ソフト)
(音声認識ミドルウェア)
Windows Vistaなどに標準搭載
Windows 10に標準搭載(Cortana)
Intermec  - インターメックが買収、その後インターメックをハネウェルが買収。
Julius (ソフトウェア) - フリーの音声認識ソフト
音声認識システムの研究開発はコンピュータが普及しだした1970年代から盛んに行われてきた。
当初は日本語識別率が60%程度にとどまっており、話者限定・事前トレーニングをおこなった理想環境下でも80%が限度であった。語彙を限定してトレーニングを必要としないシステムでは、不特定多数の話者の音声を認識できるが語彙が少ないために利用範囲は限定される。同音異義語が少ない欧米系の言語では90%の認識率があると評価されていた 。
2010年代後半からは人工知能や深層学習の進化により性能が向上し、Google アシスタントやAmazon Alexaなどバーチャルアシスタントの音声操作にも利用されるなど実用レベルに達したが、声優のような発声トレーニングを受けた者でも条件によっては認識されない場合もある。