はじめに
相手が歌っているか、話しているかは、人間だったら聞けばすぐわかる。でも、それはどうしてできるのだろうか? 両者は人間の声という意味では、同じである。では、いったい、声の中のどういった特徴を手がかりに、人間は歌声と話声を聞き分けているのだろうか? そもそも、何秒聞けば歌声だとわかるのだろうか?
こうした疑問に答えるために、まず人間の歌声と話声の聞き分け能力を調べてみた。そして、そこで分かったことを活かして、歌声と話声を聞き分けるシステムを作り上げた。最後に、このシステムがどれぐらい歌声と話声を聞き分けられるか、人間の聞き分け能力と比較してみよう。
人間はどれぐらい歌声と話声を聞き分けられる?
人間は、何秒聞けば、歌声と話声が聞き分けられるのか調査した。 最初に音声ファイルを用意した。これは、さまざまジャンルの曲(日本語および英語)を、さまざまな歌唱力の男女100人に歌ってもらい、またその歌詞を読 み上げてもらったものだ。 これを発声開始からさまざまな長さで切り出して、「歌声」なのか「話声」なのか二択で選んでもらった。以下に、使用した声を示しますので、ヘッドフォンで聴いて体験してみてください。「歌声」なのか「話声」なのか聞き分けられますか? 正解の部分をマウスで反転すれば、答えが分かります。
第1問 |
第2問 |
第3問 |
第4問 |
第5問 | 第6問 | |||||||
声の長さ |
問題 |
正解 |
問題 |
正解 |
問題 |
正解 |
問題 |
正解 |
問題 | 正解 |
問題 |
正解 |
0.10秒 |
![]() |
歌声 |
![]() |
話声 |
![]() |
話声 |
![]() |
話声 |
![]() |
歌声 |
![]() |
歌声 |
0.25秒 |
![]() |
話声 |
![]() |
歌声 |
![]() |
歌声 |
![]() |
話声 |
![]() |
歌声 |
![]() |
話声 |
0.50秒 |
![]() |
歌声 |
![]() |
歌声 |
![]() |
話声 |
![]() |
話声 |
![]() |
話声 |
![]() |
歌声 |
1.0秒 |
![]() |
話声 |
![]() |
話声 |
![]() |
歌声 |
![]() |
話声 |
![]() |
歌声 |
![]() |
歌声 |
2.0秒 |
![]() |
歌声 |
![]() |
話声 |
![]() |
歌声 |
![]() |
話声 |
![]() |
歌声 |
![]() |
話声 |

図1は、10人の被験者の回答を集計した結果を示す。人間は0.5秒でも90%、1秒程度聴けば歌声なのか話声なのか、100%識別できるようだ。1秒程度で被験者10人全員が正しく聞き分けられるということは、声の中に含まれる「歌声らしさ」もしくは「話声らしさ」は、音楽のジャンルや歌唱力、歌詞の言語などにはほとんど依存していないということになる。
そこで、今度は1秒の声の中の、どういった音響的な特徴を聞き分けの手がかりとしているのか調べてみることにした。「声」に含まれる特徴として最も重要なのは声の高さと音色である。特に、歌声の声の高さの変化はメロディを表し、その音色には「歌唱ホルマント」と呼ばれる特徴的な周波数の「響き成分」が含まれることも分かっている。では、この「メロディ」や「響き成分」を無くしたら、人間は正しく歌声と答えられるだろうか?

これを調べるために、まず、韻律(声の大きさや声の高さの変化やリズム)を崩した声を作成してみた。具体的には図2に示すように、1秒の声を、ある断片の長さで切り出し、それをランダムな順番でつなぎ合わせたものだ。断片の長さは、125ミリ秒、200ミリ秒、250ミリ秒の場合のものを作成した。一方で、音色を崩した声も作成した。こちらは1秒の声の中高域の周波数成分をローパスフィルタで取り除いた。ただし、フィルタのカットオフ周波数は800Hzに設定して、声の高さの変化は聞こえるようにした。
以下に、使用した声を示しますので、ヘッドフォンで聴いて体験してみてください。「歌声」なのか「話声」なのか聞き分けられますか? 正解の部分をマウスで反転すれば、答えが分かります。

図を使って、その原因を説明しよう。 図3は、韻律を崩した歌声と話声から、声の高さを取り出したものだ。歌声の特徴であるメロディ(階段状に変化する音程)が崩れてしまい、話声の声の高さの変化と、ほとんど見分けがつかなくなるのが分かるだろう。図4は音色。破線で囲った響き成分が取り除かれると、歌声のスペクトログラムは話声のスペクトログラムとほとんど見分けがつかないのが分かる。予想どおり、人間は歌声と話声を聞き分けるために、韻律と音色の特徴をどちらも重要な手がかりとしており、また図2の識別率の下がり具合から考えて、韻律がより重要だと考えられる。

コンピュータに聞き分けさせる
今回分かったことを活かして、歌声と話声を聞き分けるシステムを作り上げたので、以下にその作成手順を説明しよう。まず声を周波数分析して、声の高さ(F0情報)と音色(スペクトル情報)を取り出す。次に、これらがある時間にどれだけ変化したかを分析して、韻律を表す「F0変動情報」と「スペクトル変動情報」を取り出す。例えば、図3に示す矢印の傾きは「F0変動情報」を表している。ここでは声の高さではなく、声の高さの変化を取り出す必要があることに着目してほしい。
あとは、このような声の情報を、人間の聞き分け能力を調べた時に使った大量の歌声と話声から取り出して、歌声と話声でどのように声の情報が異なるのか、「確率」を使って事前に学習しておく。例えば、図3に示すように、歌声は音を一定に伸ばすことが多いため、F0変動情報(矢印の傾き)が「0に近い値」となることが多い。一方で、話声は声の高さが文末に向かって徐々に下降するため、F0変動情報は「負の値」となることが多い。したがって、F0変動情報が0に近い値であれば、「歌声である確率」が高く、負の値であれば「話声である確率」が高いということを学習する。
新たに未知の声がシステムに入力されたとき、事前に学習したこのような確率に基づいて、歌声なのか話声なのか識別結果を決定するのである。システムの詳細 については、文献[1]を参照して頂きたい。
あらゆる声を聞き分けるコンピュータを目指して

今回のシステムでは、人間が100%識別できた1秒の音声で識別率=82.0%、声の長さが長くなるにつれて、識別率はだんだん上がっていくものの、人間の聞き分け能力には追い付けなかった。しかし、声の中には、まだこのシステムで扱っていない情報が含まれており、これらを活用することで認識率をさらにアップすることが可能だと考えられる。 例えば歌声のリズム感もその一つだ。今回の実験では、ラップやヒップホップの曲を歌った歌声が「話声」と識別されてしまうことがあったが、これらは「リズム」や「声の大きさの変化」の情報を識別の手がかりに利用することで解決できるだろう。また「えーと・・・」とか「あー」のような、言い淀む話声が歌声と誤って識別されてしまっていた。このような歌声と話声の中間的な声を分析することも重要な課題である。
さて、今回は歌声と話声に注目したが、人間の口から発声される声には、他にも笑い声や泣き声、囁き声やため息など色々な形態がある。今後はこのようなさ まざまな声の聞き分けに関しても研究してみたい。
寂しそうな声だったら、元気づける会話をしてくれたり、楽しそうな声だったら、一緒に笑いあえるような、人の気持ちのわかるコンピュータを実現させたいと考えている。
メロディを口ずさんでも、曲名を読み上げても検索可能な楽曲検索システム

現在、midomiをはじめとする音楽検索システムでは、このような様々な検索手段で音楽を検索できる。しかし、これらのシステムでは、検索手段を変えたい場合、わざわざシステムの入力モードを手作業で切り替えなければならない。入力モードを切り替えるのではなく、システムが声を自動的に識別してくれたら、気になる曲を次々と歌ったり、曲名を読み上げて検索できるではないだろうか?
そこで歌声と話声の識別システムの応用例として、メロディを口ずさんでも、曲名や歌手名を読み上げても検索可能な楽曲検索システムを実装した。現在はそのプロトタイプを作成した段階である。

システムの詳細については、文献[2]を参照して頂きたい。
参考文献
- 大石 康智, 後藤 真孝, 伊藤 克亘, 武田 一哉. "スペクトル包絡と基本周波数の時間変化を利用した歌声と朗読音声の識別," 情報処理学会論文誌, vol.47, no.6, pp.1822-1830, June 2006.
- 大石 康智, 後藤 真孝, 伊藤 克亘, 武田 一哉.
"音声だけでシームレスにハミング検索と曲名検索が可能な楽曲検索システム," 情報処理学会 音楽情報科学研究会, vol.2006,
no.67, pp.2-7, Oct. 2006.