音声入力とは何もの??
音声入力でブログを書いてきましたが、ここでいったん立ち止まって
音声入力はどうやって動いているのか?
という「音声入力の仕組み」を勉強してみました。
学習にあたって『イラストで学ぶ 音声認識』という技術書を購入しましたが、僕のような門外漢にとってはすこぶる難解でした。
専門的な数学知識がどうしても必要で、いくらイラストで表現されても理解できなかったのです。
ただ、すべてのページをに目を通した結果、100%ではありませんが、
うっすらと音声入力の仕組みが見えてきました。
音声入力の仕組みとは??
音声入力とはずばり、
「音声認識」という技術で文字を入力すること
です。
つまり、音声入力の仕組みを知るためには「音声認識」を勉強すればいいのですね。
それじゃあ「音声認識」とは何かというと、
「話した言葉」という「空気の振動」を「文字」に変換することを言います。
したがって、音声入力で書くとはシンプルにいうと、
しゃべった言葉で文字を書く方法
ですね。
音声認識は次の4ステップで音を文字に変換していきます。
1. 前処理
最初に行われるのは「前処理」。
ここでは主に次の2つのことをします。
- アナログの波形をデジタルに変換
- ノイズを除去
「音」はご存じの通り、空気中を「波」として伝わるもので、音の正体は「空気の振動」。
その「空気の振動」をデジタルデータとして抽出するのがファーストステップです。
多くの場合、音のデジタルデータは、
- 横軸:時間
- 縦軸:振幅
というグラフで抽出されます。
抽出した波形から、人がしゃべった音だけを取り出す処理もおこなわれます。
これは俗にいう「ノイズ除去」というやつですね。
2. 特徴量を抽出
さて、アナログの音波をデジタルデータで取り出されました。
次はデジタルデータから「特徴量」を抽出します。
コンピューターが音から文字を識別しやすいようにデータを加工する作業。
元の音データには色々な要素が含まれていて、
- 強弱
- 周波数
- 音の間隔
などあります。
その中から音を識別するために重要な要素を抽出するのです。
3. 音から文字を識別
次は「識別」ですね。
「どの音の波形」が「どの文字」に当たるのか
を識別する作業です。
識別には次の3つの機械学習モデルを用います。
- 音響モデル
- 発話辞書
- 言語モデル
「モデル」とは、コンピューターが入力値を受け取って、そこから統計的に判断して出力値を出すものです
音響モデル
抽出した特徴量を元に、それぞれの音の波形がどの「音素」に近いのかを計算。
音素とは、音の最小単位
例えば、「こんにちは」だったら、
KONNICHIHA
という子音と母音から成り立ってますね?
これらすべての子音・母音を含めた音の最小単位を「音素」というのです。
そして、音データから音素を識別するのが「音響モデル」です。
例えば、
- 話者によって異なる間の違い
- 日による話し方の違い
など、話者の微細な変化を確率的に判断。
誤差がないように音素を識別するのが「音響モデル」の役割です。
発話辞書
「音素」から「単語」を認識するモデルです。
例えば、先程の
KONNICHIHA
という音素を音響モデルで識別したら、
KO N NI CHI HA
というように、どの音素がくっついて単語を形成するか判断します。
言語モデル
単語が表わす言葉を統計学的に推測するモデル。
例えば、「私」という言葉に続くのは助詞の
- 「は」
- 「が」
- 「を」
である確率が高いです。
このように統計学的な判断を当てはめて精度を高めるモデルです。
例えば、
かいぎょう医になりたい
としゃべった時、最初の「かいぎょう」が「開業」なのかもしくは「改行」なのかという同音異義語の判断。
ここでも言語モデルが役に立ちます。
この場合だと、「かいぎょう」の周囲にある
- になりたい
- 医
という言葉から、「改行」ではなく「開業」が正しいという判断を統計学的に下してくれるのです。
仕組みから考える音声入力のコツ
ざっくり音声入力の仕組みを理解した上で、
どうすれば音声入力で快適に書けるか考えていきましょう。
クリアに発音する
発音した通りに入力したいならば、
声の大きさ
はもちろんのこと、
ノイズがない静かな環境でしゃべるといいでしょう。
クリアに話せば、
- 音をデジタル信号に変換
- 特徴量を抽出
- 音響モデルで音素を抽出
の過程で精度自体が上がりますから。
ノイズを減らすために外付けマイクで音声入力するのも1つの手です。

ユーザー数が多いサービスを使う
識別では、統計学的に音声データをテキストに変換してきました。
統計学的処理には、
データが多いほど正しい出力を返せます。
データが多い、つまり、利用者が多いモデルを利用すると精度が上がるのです。
したがって、ユーザー数の多い、大企業の音声入力を利用するといいでしょう。
長めに話す
長めに話して、音声入力するのもコツです。
識別部の言語モデルでは、
周囲でよく使われる単語を統計学的に判断して音を識別します。
つまり、周囲に他の言葉があるほど正しい単語を出力できるのです。
例えば「うみ」と単独で発音した場合、「海」というオーシャンの意味で音声入力するのは至難の技。
なぜなら、ヒントが少なすぎて「うみ」が「海」である確率が高まらないからです。
実際にやってみると、「雲」とか「上に」とかになることもしばしば。
しかし一方、「うみ」を長い文で発音してやるとどうでしょう?
例えば、
「広いうみで泳ぎたい」
と言ってあげれば、「うみ」の周囲にある
- 広い
- 泳ぎたい
という単語から、「うみ」が「海」である可能性が高いと判断されます。
結果的に、意図通り書ける確率が高まるのです。
音声入力する際は単発ではなく、2~3文 一気に話すようにしましょう。
それでは!
Lin
お知らせ:音声入力で文章を書きたい方へ
音声入力で書くノウハウを1冊の本にまとめました。
Amazonの独占販売なのでKindle Unlimited、プライム会員の方ならKindle Owner’s Libraryで購読できます。
興味がある方は良かったら手に取ってみてください。