このサイトは、ほんの入り口です

ここにあるのは、だれかが実際に調べ、考え、作ってきたことを集めたメモです。気になったら、ページの下の「参考にした情報源」から、もとの本や記事、それを生み出した人たちに、直接ふれてみてください。このメモには書ききれないおもしろさが、そこにあります。

スマホは、わたしの 声を どうやって 文字に して いるの?

音声入力は、声のどこを手がかりに言葉を選んでいるのか

音声認識は、声の周波数の模様から、どのように文を選んでいるのか:音素・言語モデル・大規模学習

分野:技術

1952ねんに つくられた 声を 聞く きかいは、おぼえて いたのは 数字だけでした。いまは、スマホに 話しかけると、文が 出て きます。

きかいは、声の どこを 見て いるのでしょう。この ページを 読むと、声が「もよう」に なる ことと、きかいが 文を えらぶ ときの 3つの だんかいが わかります。

1952年にアメリカのベル研究所が発表した機械は、聞き分けられるのが数字だけでした。しかも、決まった1人の話し手の声を相手にしていました[5]。いまは、スマホに話しかけると、ふつうの文が画面に出てきます。

機械は、声の何を手がかりに言葉を選んでいるのでしょうか。この記事を読むと、声が周波数の模様に変わること、音の候補から文を選ぶ3つの段階、そして最近の学び方が分かります。

1952年、ベル研究所のDavis・Biddulph・Balashekは、数字を聞き分ける機械を発表した。対象は1人の話し手の数字に限られていた[5]。それから70年あまりで、音声認識は日常の文章を書き起こせるようになった。何が変わったのか。

この記事を読むと、声を周波数の特徴へ直す段階、音素の候補から文を選ぶ言語モデルの役割、そして音声から文字までを一つのモデルで学ぶ方式と、その条件つきの成績が分かる。

読み方を切り替えられます。画面の上にある「よみかた」のボタンで、小学校低学年むけ・小学校高学年むけ・中学生むけの3つの書き方に切り替わります。むずかしいと思ったら、いつでもやさしい方に戻ってください。選んだ読み方はブラウザが覚えているので、次に別の記事を開いたときも同じ読み方で始まります。

1. 1952ねんの きかいと、いまの スマホは なにが ちがうの?

1. 数字しか聞けなかった機械と、いまの音声入力は何がちがうのか

1. 数字だけを聞き分けた機械から、文を書き起こす方式へ:何が変わったのか

1952ねんに アメリカで 発表された きかいは、数字を 聞きわける ものでした。話す 人は 決まった 1人でした。

10ねんほど あとの 1962ねんには、IBMの きかいが、えいごの 16この ことばを 聞きわけました。1971ねんから 5ねんほどの けんきゅうでは、1,011この ことばを わかる きかいが できました。

いまは、おなじ 声でも 人ごとに ちがうのに、スマホは 文を 出します。しくみの おおまかな 答えは 3つです。①声を「もよう」に する。②もようから 音の こうほを 出す。③ことばの つながりやすさで、文を えらぶ。

この 3つを、じゅんに 見て いきましょう。

1952年にベル研究所が発表した機械は、数字を聞き分けるものでした。対象は1人の話し手の数字です。1961年の論文は、その精度を97%と述べています[5]。ただしこれは、決まった人が数字だけを言う条件での数字です。

その後、1962年にIBMのShoebox(シアトル万博で公開)が英語の16語を、1971〜76年のアメリカ国防高等研究計画局(DARPA)の計画でカーネギーメロン大学のHarpyが1,011語を理解しました[4]。数字だけだった機械が、少しずつ語を増やしていったのです。

では、いまの音声入力は、何をしているのでしょうか。答えの要点は3つです。①声を、周波数の模様に直す。②その模様に近い音(音素)の候補を出す。③言葉のつながりやすさを確率で見て、文を選ぶ。従来型の音声認識は、この順に進むと説明されています[1]。

この3つを、順に見ていきます。まずは、声が模様になるとはどういうことかです。

1952年にDavis・Biddulph・Balashekが発表した数字認識機は、1人の話し手の数字を対象としていた。1961年の論文は、その精度を97%と述べる[5]。ただしこれは話し手と語彙を絞った条件での値で、日常の発話に当てはまる数字ではない。

語彙は、そこから段階的に広がった。1962年にIBMのShoeboxが英語16語(数字0〜9を含む)を、1971〜76年のDARPA計画でカーネギーメロン大学のHarpyが1,011語を理解した[4]。いずれも、年表(Wikipedia)に載る初期の例である。

現在の方式の骨格を先に述べると、従来型は次の4段で文を作る。音響分析で声を周波数や強弱などの特徴の数値にし、音響モデルでその特徴に最も近い音素を選び、発音辞書で単語と発音を対応づけ、言語モデルで単語のつながりやすさの確率を見る[1]。では、最初の段で声はどんな「特徴」に変わるのか。

2. 声の「もよう」って、なに? 「あ」と「い」は どこが ちがうの?

2. 声の「模様」とは何か:「あ」と「い」はどこがちがうのか

2. 周波数の山の位置で母音を見分ける:フォルマントという手がかり

声は、高い 音と ひくい 音が まざって できて います。まざり方を、音の 高さごとの 強さで グラフに すると、ところどころに 山が 出ます。これが 声の「もよう」です。

山には、ひくい ほうから 1ばんめ、2ばんめ…と 名前が ついて います。「あ」「い」「う」は、1ばんめと 2ばんめの 山の ばしょで、だいたい 見わけられると 説明せつめいされて います。

ある 本の ひょうでは、男の 人の ふつうの 声で、「い」は 1ばんめが 240、2ばんめが 2400。「あ」は 850と 1610です。「い」は 2ばんめの 山が とても 高いところに あります。

ただし、これは 男の 人の へいきんです。声の とおり道の 形は 人ごとに ちがうので、数字も 人によって かわります。

声は、いろいろな高さの音が混ざったものです。高さ(周波数)ごとの強さを描くと、ところどころに山が現れます。この山をフォルマントと呼び、低いほうから第1、第2…と数えます[3]。

母音の「あ」「い」「う」は、第1と第2の山の位置で、おおよそ見分けられます[3]。ある表に載る男声の平均値では、「い」は第1が約240Hz・第2が約2400Hz、「あ」は約850Hzと約1610Hz、「う」は約250Hzと約595Hzです。第2の山の位置を見ると、「い」は高く、「う」は低いことが分かります。

ここで大事なのは、この数字が男声の平均で、人によって声の通り道(声道)が違うために値が変わることです[3]。同じ「あ」でも人ごとに山の位置がずれるので、機械は決まった1つの数字ではなく、近さで判断する必要があります。

実際の音声認識では、山だけを取り出すのではなく、時間ごとの周波数の強さの図(スペクトログラム)を使います。

声のスペクトル(周波数ごとの強さ)には、いくつかの山が現れる。これがフォルマントで、低い側から第1・第2…と呼ぶ。母音を見分けるには、多くの場合、第1と第2の位置で足りるとされる[3]。

Catford(2001)の表にある男声の平均値は、/i/が第1約240Hz・第2約2400Hz、/a/が約850Hzと約1610Hz、/u/が約250Hzと約595Hzである[3]。/i/と/u/は第1がほぼ同じ(240と250)で、見分ける手がかりは第2が大きく離れること(2400と595)に移る。第2の山は/i/で約4倍の高さにある(2400÷595は約4.0)。

注意点は、これが平均的な男声の値だということだ。声道は人によってちがうので値は変わる[3]。したがって機械が行うのは、「第1が850Hzなら/a/」という一対一の対応ではなく、人ごとのずれを含んだ特徴の近さの判定である。

機械が実際に使う入力は、山の数値の対ではなく、時間とともに周波数の強さがどう変わるかを表す2次元の図だ。周波数の目盛りを人の耳の感じ方に近いメル尺度にそろえたものがメルスペクトログラムで、次の章で述べるWhisperも、これを入力にする[8]。では、模様から音をどう選ぶのか。

3. もように いちばん ちかい 音は どれ? ことばは 音に どう わけるの?

3. 模様に近い音を選ぶ:「ありがとう」を音素に分けると

3. 音響モデルと音素:特徴にいちばん近い音を選ぶ

こえの もようが できたら、つぎは 「いま 出た もように、いちばん ちかい 音は どれか」を えらびます。この 音の ひとつぶを、音素おんそと いいます。

たとえば 「ありがとう」は、a・r・i・g・a・t・o・u という おんその ならびに わけられます。

きかいは、小さな 時間ごとに 「これは a に ちかい」「つぎは r に ちかい」と、おんその こうほを 出して いきます。

ここまでは、まだ ことばの いみを 考えて いません。もように ちかい 音を ならべて いるだけです。

声の模様ができたら、次は「この模様に一番近い音は何か」を選びます。この音の単位が音素です。音素は音声を構成する最小の単位で、日本語では母音・子音・撥音(ん)に分けられます[2]。

「ありがとう」は、a-r-i-g-a-t-o-u のように、ローマ字で書ける音の単位に分けられます[2]。機械は、声を短い時間ごとに区切り、それぞれの区間で、特徴にいちばん近い音素を選んで出力します[1]。この役目を持つ部分を音響モデルと呼びます。

音素の列が決まったら、発音辞書が「この音の並びは、この単語」と結びつけます[1]。

ところが、声の音は人や場面でゆれるので、音素の選び方は1つに決まらないことがあります。候補がいくつも残るとき、どう絞るのでしょうか。

音素は音声を構成する最小単位で、日本語では母音・子音・撥音(ん)に分けられる。「ありがとう」は、ローマ字で a-r-i-g-a-t-o-u と書いて示される音素に分けられる(数え方は表記の仕方で変わる)[2]。

従来型では、音響分析が周波数や強弱、音と音の間隔、時系列などの特徴を、機械が扱いやすい数値に変換する。続く音響モデルが、その特徴に最も近い音素を選んで出力する。発音辞書は単語と発音の対応を持ち、音素の並びを単語に結びつける[1]。

ここで重要なのは、音響モデルが選ぶのは音素の候補であって、単語の意味は見ていないという点だ。声は人や環境で揺れるため、同じ音の並びに複数の単語の候補が残りうる。それを絞るのが言語モデルである。

特徴が揺れれば音素の候補が割れる、という構造上の理由は、上の説明から読み取れる。では、割れた候補は何を根拠に絞るのか。

4. おなじように 聞こえる ことばは、どうやって えらぶの?

4. 同じように聞こえる候補から、文を選ぶのは何か

4. 言語モデルは、意味を理解して選ぶのではなく、並びやすさの確率で選ぶ

音が にて いる ことばは たくさん あります。そこで 3つめの だんかい、「ことばの つながりやすさ」の 出番です。

この ぶぶんは 言語モデルと よばれ、「この ことばの あとに、この ことばが 来る ことは、よく あるか」を、数字の 大きさで しらべます。よく ある ならびを えらんで、文に します。

たとえば 「きょうは てんきが…」の あとには、「いい」は よく 来ますが、「くつした」は 来にくい でしょう。きかいが 意味を わかって いるのでは なく、ならびやすさの 数字で えらんで いる、と 説明せつめいされて います。

さいきんは、次に 来そうな ことばを 当てる ことも できるように なりました。

音は同じでも、言葉が違う候補はたくさんあります。そこで3つ目の段階、言語モデルが働きます。単語どうしの並びやすさを確率で判断し、起こりやすい組み合わせを選んで文にします[1]。

たとえば「今日は天気が」のあとに来るのは、「いい」のほうが「くつした」より起こりやすい、という具合です。機械が意味を理解して選ぶのではなく、並びやすさの確率で選ぶ、と説明されています[2]。

この確率をもとに、次に来る単語を予測することもできます[2]。

音響モデルが「音の近さ」、言語モデルが「言葉の自然さ」を担当し、2つの得点を合わせて文を決めるわけです。ただし、確率で選ぶので、まれな言葉や名前は選ばれにくくなります。

ところが最近は、この分業そのものを変える方式が出てきました。

言語モデルは、単語間の出現度合いの確率が高い組み合わせを選んで文章化する[1]。単語の出現確率から、次に来る単語を予測することもできる[2]。ここで留意すべきは、これが意味の理解ではなく、確率にもとづく選択だという点だ。

英語では、音が近い二つの文のうち一方を、言語モデルが高い確率、他方を極めて低い確率とみなして選ぶ、という例が教材で挙げられている。ここでは例の細部には立ち入らず、確率で選ぶという一般論にとどめる。

この分業には弱点がある。音響モデル・発音辞書・言語モデルは別々に作られ、それぞれに専用のデータが要る。そこで、音声から文字までを一つのモデルで学ばせる方向へ進んだ。1980年代前半から隠れマルコフモデル(HMM)が使われ始め、1990年には最初の一般向け製品といわれるDragon Dictateが出た[4]。その後に深層学習を組み合わせた方式、さらにEnd-to-End方式へと進んだ。では、一つのモデルに学ばせるとき、どれほどの音声が使われるのか。

5. 1つの モデルは、どれくらいの 声を 聞いて 学ぶの?

5. 約77.6年分の音声で学ぶ、とはどういうことか

5. Whisperの学習データと、人間並みという報告の条件

さいきんは、声から 文字までを、まるごと 1つの モデルで 学ぶ ほうほうが ふえて います。OpenAIの「Whisper」は、68まん時間の 音声で 学びました。

68まん時間は、1年が 8,760時間なので、およそ 77.6年ぶんです。人が 毎日 ずっと 聞いても、77年かかる ながさです。そのうち 11まん7せん時間は、えいご いがいの 96の ことばでした。

Whisperは、声を 30びょうずつに 区切って、80この はばの もように しています。小さく 区切った 25ミリびょうの ぶぶんを、10ミリびょうずつ ずらしながら です。

2016ねんには、マイクロソフトが 「電話で 話した 内ようを 文字に する しけんで、人の しごとの 書き起こしと 同じくらいに なった」と つたえました。ただし、これは その しけんでの くらべです。

最近は、音響モデル・発音辞書・言語モデルを分けず、音声から文字までを一つのモデルで行う方式が広がっています。OpenAIのWhisperは、68万時間の多言語・多タスクの音声で学習しました。うち11.7万時間は、英語以外の96言語です[7]。

68万時間を年に直すと、1年が8,760時間なので、約77.6年分です(680,000÷8,760)。日本語の話し言葉を集めた国立国語研究所のコーパスは、約661時間・3,302件の講演・1,417人の話者です[9]。単純に時間で比べると、Whisperの学習量はその約1,000倍です(680,000÷661は約1,029)。ただし、Whisperのデータは言語も用途もちがい、同じ目的のデータどうしの比較ではありません。

手順は、音声を16kHzにして30秒ごとに区切り、25ミリ秒の窓を10ミリ秒ずつずらして、80の帯域の音の模様(ログ・メルスペクトログラム)にします。それを、エンコーダとデコーダを持つTransformerという仕組みが読み、文字列を出します[8]。

2016年には、Microsoftが電話会話の書き起こしで、人間の専門書き起こし者と同等に達したと報告しました。単語の誤り率は、Switchboardという試験で人間5.9%に対しシステム5.8%、CallHomeでは人間11.3%に対し11.0%です[6]。これは特定のテストでの比較で、どんな場面でも人間並みという意味ではありません。

音声から文字までを一つのモデルで行うEnd-to-End方式の代表例がWhisperである。Radfordらは、68万時間の多言語・多タスクの音声でモデルを学習させ、追加の調整なしで標準的なベンチマークに対応し、人間の正確さと頑健さに近づくと述べる。68万時間のうち11.7万時間は英語以外の96言語である[7]。

この量を実感するため、年数に直す。1年を8,760時間とすると680,000÷8,760で約77.6年分になる。国立国語研究所の日本語話し言葉コーパスは約661時間・3,302件・1,417人の話者で、音響モデルや言語モデルなど音声認識研究用の統計モデルも提供される[9]。時間だけで割ると約1,029倍だが、言語・音声の質・用途がちがうため、同条件の比較とはいえない。

入力処理は、音声を16kHzに変換し、30秒ごとに区切り、25ミリ秒の窓を10ミリ秒ずらして80チャンネルのログ・メルスペクトログラムにする。窓を10ミリ秒ずつ動かすと、30秒には約3,000個の列ができる計算になる(30÷0.01)。これをエンコーダ・デコーダ型のTransformerが読み、文字列を出力する[8]。

成績の読み方には注意が要る。Microsoftは2016年、電話会話の書き起こしで人間と同等に達したと報告した。単語誤り率はSwitchboardが人間5.9%・システム5.8%、CallHomeが人間11.3%・システム11.0%である[6]。これは特定の二つのテストでの比較で、雑音の多い場所や、データに少ない言語・話し方で同じ水準になることを示すものではない。人間並みという言葉は、条件つきで読む必要がある。

6. 自分の 声の「もよう」を 見に いこう

6. 声と文字入力で、自分の耳と機械を比べる

6. 手がかりを自分で確かめ、原典に当たる

くちの 形で 音は かわる?

「あー」と 言いながら、くちの 形を ゆっくり 「い」の 形に して みましょう。音が「あ」から「い」に かわる ところで、じぶんの 耳に 何が おきたか、ききます。

スマホに はなしかける

スマホの 声での 入力を つかって、「きょうは かんきが いいね」「かんきを つけてね」と 話して、「かんき」が どんな 字で 出るか 見て みましょう。まわりの 音を ちいさくすると どうなるかも ためせます。おうちの 人と いっしょに やります。

口の形を変えながら、声を聞く

「あー」と声を出しながら、口の形をゆっくり「い」の形に動かします。声の高さを変えなくても、音が「あ」から「い」に変わっていくのが聞こえます。声の通り道の形で、山の位置がちがう音になる、と考えると、この章の数字の意味が見えてきます。

スマホの音声入力で試す

メモ帳などで音声入力を使い、同じ音の言葉(「かんき」など)を文の中で話して、どの字が選ばれるか見てください。文の流れで選ばれ方が変わるかどうかは、言語モデルの働きを考える手がかりになります。静かな場所と、まわりが騒がしい場所でも比べられます。

資料を読むなら

NTT東日本の解説[1]は、日本語で全体の流れを読めます。Whisperの論文[7]や、人間と同等と報告した論文[6]は英語ですが、試験の条件が書かれています。

手がかりを確かめる

「あー」と声を出しながら口の形を「い」へ動かし、音が連続的に変わるのを聞く。母音の違いが、第1・第2フォルマントの位置の違いとして表される[3]という説明と、自分の体の感覚をつなげる実験である。スマホの音声入力では、同音の語(「かんき」など)を文脈を変えて発話し、変換の選ばれ方がどう変わるか観察できる。

資料を読むなら

全体の流れはNTT東日本の解説[1]、音素と深層学習の位置づけはAIsmiley[2]にある。Whisperの学習量と入力処理は原論文[7][8]、人間並みの条件は[6]、日本語の音声データの規模は国立国語研究所のコーパス[9]で確かめられる。1952年の機械の精度は、1961年の学会論文[5]が述べている。

子どもの声や方言、雑音の中での成績は、評価データの条件を見ながら調べてみたい。

しらべた もとの じょうほう

参考にした情報源

参考にした情報源と、その使い方

本文で使った資料です。

  1. NTT東日本 音声認識の解説コラム. https://business.ntt-east.co.jp/content/cloudsolution/column-253.html (従来型の流れ・言語モデル)
  2. AIsmiley 音声認識とディープラーニング. https://aismiley.co.jp/ai_news/deep-learning-voice/ (音素・言語モデルと深層学習)
  3. Wikipedia: Formant. https://en.wikipedia.org/wiki/Formant (母音とフォルマント・男声の平均値)
  4. Wikipedia: Timeline of speech and voice recognition. https://en.wikipedia.org/wiki/Timeline_of_speech_and_voice_recognition (Shoebox・Harpy・HMM・Dragon Dictate)
  5. ICPhS 1961 論文. https://www.coli.uni-saarland.de/Phonetics/icphs/ICPhS1961/p4.1_313.pdf (1952年の機械の精度)
  6. Xiong et al. Achieving Human Parity in Conversational Speech Recognition (arXiv:1610.05256, 2016). https://arxiv.org/abs/1610.05256 (人間と同等の報告と条件)
  7. Radford et al. Robust Speech Recognition via Large-Scale Weak Supervision (arXiv:2212.04356, 2022). https://arxiv.org/abs/2212.04356 (学習データの量)
  8. 同論文 ar5iv版. https://ar5iv.labs.arxiv.org/html/2212.04356 (入力処理の手順)
  9. 国立国語研究所 日本語話し言葉コーパス データ一覧. https://clrd.ninjal.ac.jp/csj/en/data-index.html (日本語の音声データの規模)

なおした ところ

更新履歴

更新履歴(改版の記録)

  •  初版を公開。

このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。