音声の信号処理と特徴量:音を数値にする
コンピュータが音声を扱う前段の、音を数値にする処理を学びます。基礎層では、音を数字の列に変え、成分に分け、声の特徴をとり出す、という流れをつかみます。深掘り層では、A-D変換とパルス符号変調器(PCM)、高速フーリエ変換(FFT)、スペクトル包絡とフォルマント、メル尺度とメル周波数ケプストラム係数(MFCC)、そして音韻と音素までをしくみのレベルで説明できるようになります。
ねらい
このレッスンでは、コンピュータが音声を扱う前段の処理を学びます。
基礎
「音を数字の列に変え、成分に分け、声の特徴をとり出す」という全体像をつかみます。前提となる知識がなくても、ここは読み切れます。
1. 音をコンピュータが扱える数字の列に変える
音は、空気のふるえです。マイクは、このふるえをなめらかに変化する電気の信号に変えます。連続してなめらかに変化する信号をアナログ信号と呼びます。
コンピュータは、とびとびの数字しか扱えません。そこで、なめらかなアナログ信号をとびとびの数字の列に変換します。この変換を A-D変換(エーディーへんかん、Analog-to-Digital 変換)と呼びます。アナログの音をデジタルの数字に直す、という意味です。
数字への変換には、決まったやり方があります。もっとも基本的で広く使われる方式が、パルス符号変調器(PCM)(パルスふごうへんちょうき、Pulse Code Modulation)です。音の波を一定の間隔で数字にして記録していきます。
ポイント
音は空気のふるえです。A-D変換で数字の列に変え、パルス符号変調器(PCM)の方式で記録することで、コンピュータが扱えるようになります。
2. 音を高さの成分に分ける
数字にした音は、そのままでは高い音と低い音が混ざったままです。声を聞き分けるには、どの高さの音がどれだけ含まれるかをとり出す必要があります。
音の高さは、1秒間に波が何回くり返すかで決まります。このくり返しの回数を周波数(しゅうはすう)と呼びます。周波数が高いほど、高い音になります。
混ざった音を周波数ごとの成分に分ける計算が、高速フーリエ変換(FFT)(こうそくフーリエへんかん、Fast Fourier Transform)です。この計算を通すと、どの高さの音がどれだけ含まれるかが分かります。声の特徴をとらえる、最初の手がかりになります。
3. 声を特徴づける手がかりをとり出す
周波数ごとの成分が分かると、そこから声の特徴をとり出せます。ここで、いくつかの手がかりが登場します。
声には、そのおおまかな音色を決める、山のような特徴があります。この山をフォルマントと呼びます。フォルマントの現れる位置によって、「あ」と「い」のような母音を聞き分けられます。
また、人の耳は、音の高さを均一には感じません。低い音の違いには敏感で、高い音の違いには鈍くなります。この人の聞こえ方に合わせた、音の高さのものさしがメル尺度(メルしゃくど)です。メル尺度を使って声の特徴をまとめたものが、メル周波数ケプストラム係数(MFCC)(メルしゅうはすうケプストラムけいすう、Mel-Frequency Cepstral Coefficients)です。音声認識で長く使われてきた、代表的な特徴量です。
言葉の音そのものにも、単位があります。意味を区別する最小の音の単位を音素(おんそ)と呼びます。そして、ある言語で意味の区別に関わる音のきまりの全体を音韻(おんいん)と呼びます。
ここまでの要点
- 音は空気のふるえで、A-D変換とパルス符号変調器(PCM)で数字の列にします。
- 高速フーリエ変換(FFT)で、音を高さの成分に分けます。
- フォルマントやメル周波数ケプストラム係数(MFCC)で、声の特徴をとり出します。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「音を数字にして、成分に分け、声の特徴にまとめる」と押さえられていれば、このテーマの土台はできています。
発展
ここからは、音を数字にする段取りや、特徴のとり出し方をくわしく見ます。周波数や対数など、数式も少し使います。
4. アナログからデジタルへ:標本化・量子化とパルス符号変調器(PCM)
A-D変換は、大きく3つの段取りで進みます。
1つ目は、標本化(ひょうほんか)です。なめらかな波を一定の時間間隔でつまみ取ります。1秒間に何回つまみ取るかをサンプリング周波数と呼びます。音楽CDでは、1秒あたり44,100回つまみ取ります。細かくつまむほど、もとの波を忠実に写せます。もとの音に含まれる、いちばん高い周波数の2倍より細かくつまめば、もとの波を復元できることが知られています。この関係を標本化定理と呼び、式で書くと、サンプリング周波数 > 2 × もとの音のいちばん高い周波数 となります。読み下すと、いちばん高い成分の2倍を超える回数でつまみ取れば足りる、という意味です。音楽CDの毎秒44,100回は、人が聞き取れるおよそ毎秒20,000回の音まで、この条件を満たす値になっています。
2つ目は、量子化(りょうしか)です。つまみ取った波の高さを決まった段階のどれかに丸めます。段階の数が多いほど、細かい高さの違いを写せます。1つの値を16桁の2進数で表すと、65,536段階で高さを区別できます。
3つ目は、符号化です。丸めた値を0と1の数字の並びとして記録します。
この標本化・量子化・符号化という段取りで音を数字にする方式が、パルス符号変調器(PCM)です。今のデジタル音声の、もっとも基本的な記録の方式にあたります。
5. 波を成分に分ける:高速フーリエ変換(FFT)とスペクトル
数字にした音は、時間に沿って波の高さが並んだデータです。この形のままでは、どの高さの音が含まれるかは分かりません。時間に沿った波の並びを周波数ごとの成分の並びに置きかえる計算が要ります。
どんな複雑な波も、単純な波の重ね合わせで表せる、という考え方があります。これを利用して、波を周波数ごとの成分に分解する計算が、フーリエ変換です。フーリエ変換をコンピュータで高速に計算できるようにした方法が、高速フーリエ変換(FFT)です。
高速フーリエ変換(FFT)を通すと、周波数ごとに、その成分がどれだけ強く含まれるかが分かります。この、周波数ごとの成分の強さの分布をスペクトルと呼びます。横に周波数、縦に成分の強さをとった分布だと考えると、音の中身が見わたせます。
6. 声道の共鳴:スペクトル包絡・フォルマント・フォルマント周波数
人の声は、のどの声帯で作られた音のもとが、口やのどの空間を通るあいだに形づくられます。この口やのどの空間を声道(せいどう)と呼びます。声道は、特定の高さの音を強め、別の高さの音を弱める、共鳴の性質を持ちます。
スペクトルには、細かいギザギザと、そのおおまかな起伏の両方が含まれます。このおおまかな起伏だけをなめらかに取り出したものをスペクトル包絡(スペクトルほうらく)と呼びます。スペクトル包絡は、声道の形、つまりどんな共鳴が起きているかを反映します。
スペクトル包絡には、いくつかの山があります。この山がフォルマントです。フォルマントは、声道の共鳴によって強められた周波数の帯を表します。そして、それぞれの山がある周波数をフォルマント周波数と呼びます。低いほうから第1フォルマント、第2フォルマントと数えます。
母音の聞き分けは、主にフォルマント周波数の並びで決まります。「あ」と「い」では、フォルマント周波数の組み合わせがちがうため、別の母音として聞き取れます。声の高さそのものより、共鳴の形が母音を決めているのです。
7. 人の聞こえ方に合わせる:メル尺度とメル周波数ケプストラム係数(MFCC)
人の耳は、周波数の違いを均一には感じません。低い音では、わずかな周波数の違いもよく聞き分けます。高い音になると、同じ周波数の違いでも、あまり違って聞こえません。
この人の聞こえ方に合わせて、周波数を目盛り直したものさしがメル尺度です。低い周波数を細かく、高い周波数を粗く区切ります。物理的な周波数ではなく、人がどう感じるかに近い形で音をとらえられます。
メル尺度を使って声の特徴をまとめたものが、メル周波数ケプストラム係数(MFCC)です。作り方は、おおよそ次の流れです。まず、スペクトルをメル尺度の区切りでまとめます。次に、その強さの対数をとります。対数をとるのは、人が音の大きさをかけ算的な変化として感じるためです。最後に、ケプストラムと呼ばれる変換を通します。ケプストラムは、対数をとったスペクトルをさらに変換したもので、スペクトル包絡と細かいギザギザを分けるはたらきがあります。
こうして得られるメル周波数ケプストラム係数(MFCC)は、声道の共鳴の特徴を少ない数の係数にまとめたものになります。声の個人差や高さの影響を受けにくく、母音や子音の違いをとらえやすいため、音声認識の特徴量として長く使われてきました。
8. ことばの音の単位:音韻と音素
音声を言葉として扱うには、音を意味に結びつく単位でとらえる必要があります。ここで、音素と音韻という2つの考え方が登場します。
音素は、意味を区別する最小の音の単位です。たとえば日本語で「かき」と「さき」は、最初の音がちがうだけで別の言葉になります。この、入れかえると意味が変わる最小の音のまとまりが音素です。
音韻は、ある言語で意味の区別に関わる、音のきまりの全体を指します。同じ音でも、言語によって意味の区別に使うかどうかが変わります。音韻は、その言語ごとの音の体系だと考えると分かりやすくなります。
音声認識では、音の特徴から、まずどの音素が話されたかを推定し、それを単語や文へつなげていきます。音素は、音声と言葉をつなぐ、大切な中間の単位になります。
9. スペクトログラムと音声データセット
ここからは、現行の技術に触れます。音声処理を理解するのに役立ちます。
第5節のスペクトルは、ある一瞬の周波数の分布でした。音声は時間とともに変化するため、時間の流れに沿ってスペクトルを並べて見たくなります。横に時間、縦に周波数、色の濃さで成分の強さを表した図をスペクトログラム(spectrogram)と呼びます。声の変化を一目で見わたせるため、音声を扱うニューラルネットワークの入力にもよく使われます。
音声のモデルを学習させるには、大量の音声データが要ります。研究では、共通のデータセットを使って性能を比べます。英語の朗読音声を集めた LibriSpeech(リブリスピーチ)は、音声認識でよく使われるデータセットの1つです。こうしたデータセットの顔ぶれは移り変わるため、代表例として押さえておくとよいでしょう。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。