ラジオから流れるポップスで、人間の声なのに電子楽器のように音程がカクカクと切り替わる歌声を聴いたことがあると思います。テクノポップやヒップホップでおなじみの、いわゆる「ケロケロ声」です。あれはボコーダーのような特殊な機材の音ではなく、正体は音程補正ツール、いわゆるオートチューンです。本来は歌の音程のずれをこっそり直すための道具が、設定を極端にすると、あの声になります。
前回のピッチ検出の記事 では、マイクに入った音の高さを言い当てるチューナーを作りました。今回はその直接の続編です。チューナーは「ラより47セント高いですよ」と教えてくれるだけで、直すのは人間の仕事でした。オートチューンは、そこから一歩踏み込んで、機械が音程そのものを直してしまいます。
中身は3段のくり返し
オートチューンのやることは、突き詰めると3段です。いまの音程を検出する。いちばん近い「正しい音」を選ぶ。そこへ向けて音程をずらす。これを1秒に何十回もくり返すだけです。
1段目の検出は、前回やった自己相関そのものです。波形を自分自身と少しずつずらして重ね、ぴたり一致するずれ幅から基本周期を割り出す、あの方法がここでも心臓部として動いています。チューナーとオートチューンは、前半がまるごと同じ機械なのです。
2段目が今回の新顔で、「正しい音」を決める段です。といっても大げさなものではなく、あらかじめ「この曲で使ってよい音の集まり」を決めておくだけです。この集まりをスケール(音階)と呼びます。たとえばハ長調ならドレミファソラシの7音で、平均律の回 で見たとおり、それぞれの音の周波数は決まっています。検出した音程が452Hzだったら、スケールの音の中でいちばん近いものを探す。ラ(440Hz)までは47セント、シ(494Hz)までは153セント。だから目標はラだ、という多数決ならぬ最短距離の判定です。
3段目は、選んだ目標へ向けて音程をずらす段です。今回のデモのように音を合成で作っている場合は簡単で、位相を回す速さ を補正後の周波数に差し替えるだけで済みます。マイクで録った本物の歌声を加工する場合はもう少し大変で、波形を壊さずに音程だけ動かす処理が要るのですが、やりたいことは同じ「452Hzの声を440Hzの声にして出す」です。
「吸い付く速さ」がケロケロの正体
ここまでで音程は直せるのですが、実はまだ大事なつまみが1つ残っています。目標へ向けて、どれくらいの速さでずらすか。オートチューンの音色を決定づけるのは、検出でも量子化でもなく、この補正スピードです。
人間の歌声は、正確な歌手でも音程がぴたりと一直線ではありません。ビブラートで揺れ、音の変わり目では下や上からしゃくり上げ、音の中心もわずかに漂います。この揺れこそが人間らしさで、全部消すと不自然になります。そこで補正を0.1〜0.2秒くらいかけてゆっくり効かせると、速い揺れ(ビブラートやしゃくり)は補正が追いつけずに生き残り、ゆっくりしたずれ(音の中心の外れ)だけが直る。これが「直したことに気づかれない」自然な補正で、オートチューンの本来の使い方です。
では補正時間を0にしたら何が起きるか。検出した瞬間に音程が目標へ張り付くので、出てくる音程はスケールの音の上をぴたりと這い、音から音へは垂直にジャンプします。図の右側のとおり、音程の軌跡が階段になるのです。ビブラートもしゃくりも消え、階段の踏み面は電子楽器のように平坦、段差の瞬間はポルタメントなしの瞬間移動。人間の声帯では物理的に出せないこの動きが、耳には「人の声なのに機械」という独特の質感、つまりケロケロ声として聞こえます。
面白いのはここからで、この設定はもともと「やり過ぎ」、いわばエフェクトの副作用でした。オートチューンの元祖である Auto-Tune は、石油探査の信号処理技術者だったアンディ・ヒルデブランドが1997年に発売したソフトウェアで、狙いはあくまで自然な音程補正でした。ところが翌1998年、シェールの「Believe」が補正スピード最速の「不自然な」設定を堂々とサビで使ってヒットし、以来この副作用は、T-Pain がそれを自分の看板に据え、カニエ・ウェストがアルバム1枚をまるごとこの声で通したあたりで、ひとつの声の音色として完全に定着します。歪みすぎたギターアンプの音がロックの音色になったのと同じ道筋を、歌声の世界でたどったわけです。
この声を曲で聴く
言葉で説明するより、実際にその声が入った曲を聴いたほうが早い部分でもあります。エフェクトの副作用が音色として定着し、やがて感情を運ぶ道具にまで変わっていく道筋を、年代順に4枚だけ挙げておきます。

Cher / 1998
Believe
この声が世に出た起点。サビの「I can't break through」で音程が階段状に跳ぶのが、まさに補正スピードを最速にしたときの挙動です。発表当時は効果の正体が伏せられていて、何の機材を使ったのかがしばらく話題になりました。

T-Pain / 2005
Rappa Ternt Sanga
こっそり直すための道具を、隠すどころか自分の声の看板にしたデビュー作。「ばれないように使う」という前提をひっくり返した時点から、これはエフェクトではなく歌い方のひとつになりました。

Kanye West / 2008
808s & Heartbreak
ラップをやめてアルバム1枚を歌で通し、その歌をまるごとこの声にした作品。うまく歌うためではなく、感情を平坦に均して寒々しさを出すために使っています。補正の副作用が、表現のための選択肢として扱われた例です。

Bon Iver / 2009
Blood Bank
収録曲「Woods」は伴奏がなく、この声だけを重ねて作られています。ダンスミュージックともヒップホップとも縁のなかったフォークの歌い手が、機械の声を震えや寂しさの側に引き寄せた1曲で、翌年にはカニエ・ウェストがこれをサンプリングしています。
ジャケット画像はMusicBrainz / Cover Art Archive由来の画像を記事内に同梱して配信しています。
触ってみる
聴き比べるのがいちばん早いので、デモを用意しました。再生ボタンを押すと、わざと音程をふらつかせた歌声風のメロディ(ドレミソミレド)が鳴ります。各音は最大で半音の半分近く外れていて、ビブラートもかかっています。この同じメロディを、補正オフ・なめらか補正・即時補正の3つで切り替えて聴いてみてください。
うまく表示されないときは、デモを別タブで開く 。
下のグラフには、自己相関で検出した生の音程(青)と補正後の音程(赤)が流れていきます。なめらか補正では、赤い線が青い線の揺れをまとったまま、中心だけスケールの横線に寄っていくのが見えるはずです。即時補正に切り替えた瞬間、赤い線は横線の上に張り付いて階段になり、音もあのケロケロ声に変わります。さきほどの図がそのまま、音付きで動いている格好です。補正スピードのスライダーを少しずつ動かして、「自然な補正」から「ケロケロ」へどこで切り替わって聞こえるか、自分の耳で境目を探してみるのも面白いところです。
スケールを半音階(12音ぜんぶ)にすると、吸い付き先の候補が倍近くに増えます。候補が増えると隣の音との距離が縮まるので、ビブラートの揺れがときどき隣の半音に引っかかって、階段が細かく暴れ出します。実際の制作でオートチューンに曲のキーを教えるのは、この誤爆を防いで「その曲で意味のある音」だけに吸い付かせるためです。
このデモは音を合成で作っているので、補正後の周波数で位相を回し直すだけで音程を動かせています。本物の歌声の声色を保ったまま音程だけ動かすには、声の共鳴の特徴(フォルマント)を崩さずに波形を加工する必要があり、これはぐっと難しい話になります。市販のオートチューンの価値の少なくない部分は、実はこの「声色を保つ」処理にあります。
ところで、機械が音程を直してくれる時代に逆行するようですが、筆者は音程のずれを自分の耳で聴き取れるようになるための練習アプリ Harmonize を個人で開発しています。今回のデモで「47セントのずれ」がどう聞こえるか気になった方は、耳の側を鍛える入り口にどうぞ。
どう実現するか
核になる2段目と3段目は、コードにすると拍子抜けするほど短いものです。音程はヘルツのままだと扱いにくいので、半音を1とする物差し(MIDIノート番号と同じ目盛り)に直してから処理します。周波数 $f$ と目盛り $m$ の行き来は
$$m = 69 + 12 \log_2 \frac{f}{440}, \qquad f = 440 \cdot 2^{(m - 69)/12}$$
です。この目盛りの上では「いちばん近いスケールの音」は単なる丸めで、「ゆっくり吸い付く」は目標との差を毎サンプル少しずつ詰める一次遅れ(現在値と目標の差の一定割合だけ毎回近づける、なめらか化の定番手法)で書けます。
/* オートチューンの補正チェーン(C風の擬似コード。mは半音単位の音程) */
double m_raw = detect_pitch(); /* ①検出(前回の自己相関) */
double target = nearest_scale_note(m_raw); /* ②スケール上の最寄りの音 */
corr += ((target - m_raw) - corr) * k; /* ③補正量を目標へ吸い付かせる */
double m_out = m_raw + corr; /* k=1 なら即時=ケロケロ */
phase += hz(m_out) / fs; /* 補正後の周波数で位相を回す */
output = wave(phase);
ポイントは、補正後の音程を直接なめらか化するのではなく、補正量(ずらす幅)のほうをなめらか化していることです。こうすると、ビブラートのような速い揺れは m_raw 側にそのまま残り、補正量だけがゆっくり動く。図と同じ「揺れは生きたまま中心が寄る」挙動が、この1行から出てきます。係数 $k$ が補正スピードのつまみで、1にすれば毎サンプル目標へ全量吸い付く、つまり階段です。
参考文献
- H. A. Hildebrand, “Pitch detection and intonation correction apparatus and method,” US Patent 5973252 (1999)。Auto-Tune の基本特許。自己相関によるピッチ検出と音程補正の組み合わせが記されています。
- 青木直史『C言語ではじめる音のプログラミング――サウンドエフェクトの信号処理 』オーム社(2008)。ピッチ変換をはじめとするエフェクトの信号処理をC言語の実装つきで学べる定番書。
- デモの実装には Web Audio API を使用。検出は前回と同じ自己相関で、補正後の音程による再合成は ScriptProcessorNode の中で位相を回して行っています。
検出して、選んで、吸い付かせる。まずはデモで、自然な補正とケロケロの境目を耳で探してみてください。
連載「サウンドプログラミング」
← 前回 無限に速くなり続けるビート
