AIは「サビ」を知らない。それでも一晩でショート動画の工場はできた

AIで作った曲が、70曲近くあって、徐々にYouTubeにも上げはじめた。となると、次に欲しくなるのはショート動画だ。縦型の30秒で曲の一番いいところを流して、本編への入り口にする。いま音楽を聴いてもらうなら、ここを通らない手はない。

最初に考えたのは、単純な方法だった。動画からサビの30秒を切り抜けばいい。でも、すぐに気づく。切り抜くだけなら、YouTubeの標準機能でできる。アプリで範囲を選んで、ボタンを押すだけだ。わざわざ自分で仕組みを作る意味がない。

だから、目標を変えた。「切り抜き」じゃなくて、押したら完成品が出てくる工場を作る。サビを自分で探さない。縦画面のデザインを毎回作らない。歌詞も自動で、歌に合わせて出る。そこまでやって、はじめて作る意味がある。

結論から言うと、一晩でできた。そして途中で、AIとの分業について、けっこう本質的なことを学んだ。

工場の中身は、無料の道具の寄せ集めだった

できあがった仕組みは、コマンドを1回打つと、こう動く。

曲のフォルダ(音源とジャケット画像)

├─ ① 音を解析して「サビらしき30秒」を探す

├─ ② ジャケットから縦画面をデザインする(ぼかし背景・曲名入り)

├─ ③ AIが歌声を聴いて、歌詞の出るタイミングを実測する

├─ ④ ゆっくりズームする動きと、歌に同期した歌詞を焼き込む

└─ ⑤ YouTubeにアップロードして、URLを返す

かかる時間は、1曲あたり2分くらい。6曲ぶんのショートを作るなら、コマンドを6回打つだけだ。

種明かしをすると、この工場にゼロから発明した部品はひとつもない。数値解析の道具、画像を合成する道具、音声認識のAI、動画を書き出す道具。ぜんぶ昔からある無料の道具で、新しく書いたのは「それらを順番に呼び出す指揮者の台本」だけ。ソフトウェアを作るというのは、実際にはこういう配線作業の積み重ねだった。

そしてお金の話。この仕組みの運用コストは、ゼロ円だ。音声認識のAIまで含めて、ぜんぶ無料で、しかも手元のパソコンの中だけで動く。数年前なら「歌詞を歌に同期させる」だけで外注案件だったはずのことが、いまは家で、無料でできる。

AIは「サビ」を知らなかった

いちばん面白かったのは、①のサビ探しだ。

最初、僕は「AIならサビくらい分かるだろう」と思っていた。現実はちがった。この仕組みは、サビがどこかを理解していない。やっていることは、曲全体の音圧を測って、「一番音が分厚い30秒」を選んでいるだけだ。

それでも、だいたい当たる。サビは楽器が増えて、コーラスが重なって、音の壁が厚くなる。だから「一番うるさいところ」を探すと、たいていサビ周辺に落ちる。経験則としては、7〜8割くらいの打率だと思う。

でも、外れ方も想像できる。激しいギターソロがある曲なら、ソロを掴むだろう。イントロが一番派手な曲なら、イントロを選ぶだろう。実際、今回の曲でも、サビのど頭ではなく直前のフレーズから拾ってきた。

だから、保険を2つ入れた。ひとつは、どこを選んだかを棒グラフみたいな音圧の地図で表示すること。人間がひと目で「ここを掴んだのか」と確認できる。もうひとつは、外れたときに「何秒から」と手で指定し直せること。

サビ探しの分業

├─ AI   一番音が分厚い30秒を提案する(速いが、意味は分かっていない)

└─ 人間  地図を見て「そこでいい」と決める。外れたら指をさし直す

全自動にしないことが、実用性だった。AIの提案を人間が1秒で承認する。この形がいちばん速くて、いちばん事故らない。

歌詞の空耳は、「正解のメモ」で上書きする

歌詞をどう歌に合わせるか。ここは今夜の山場だった。

まず試したのは、ズルい方法だ。サビの歌詞が8行あるなら、30秒を8等分して、順番に表示する。同期っぽく見えるだろう、という目論見。結果は「おしい」だった。歌はフレーズごとに長さがちがう。畳みかけるところは短く、伸ばすところは長い。等分した歌詞は、少しずつ、確実にズレていく。

そこで、音声認識AIの出番になる。歌声そのものを聴かせて、「この言葉は何秒から何秒まで歌われたか」を実測させる。これが驚くほど正確だった。畳みかける2つのフレーズの間の、1秒未満の隙間まで拾ってくる。

ただし、弱点もはっきりしていた。空耳をする。「Your lashes(きみのまつげ)」を「Your ashes(きみの遺灰)」と聞き間違えた。ラブソングが一瞬で別ジャンルになる誤字だ。

解決は、意外と人間くさい方法だった。僕の手元には、AIに歌わせるときに書いた歌詞の正本がある。そこで、聞き取った文字をそのまま使うのをやめて、「タイミングは耳コピ、文字は正本」という分業にした。認識結果と歌詞メモを照らし合わせて、似ている行があれば正本の文字で上書きする。

歌詞同期の分業

├─ 音声認識AI  いつ歌われたかを実測する(タイミング係)

└─ 歌詞の正本  なんと歌っているかを保証する(文字係)

つまりこの仕組みは、僕のメモ帳を信用して成立している。もしメモ帳の歌詞が間違っていたら、間違った歌詞が堂々と表示される。AIの精度の話をしているようで、最後は「人間の書類仕事」が土台にある。ここは笑うところだけど、実務ってだいたいこうだ。

画面には「置いてはいけない場所」がある

もうひとつ、作ってみて初めてぶつかった壁がある。デザインの問題だ。

最初の版を実機で見ると、せっかく入れた歌詞が読めなかった。ショート動画の画面には、動画のタイトルやチャンネル名、いいねボタンの列が、あとから上に重なってくる。画面の下のほうと右端は、アプリのUIに占領される「置いてはいけない場所」だった。

だから、レイアウトを引っ越した。曲名は画面の一番上へ。ジャケットは上寄りへ。歌詞はジャケットの下の、UIに被られない帯の中へ。それから、長い歌詞の行は画面からはみ出す前に、意味の切れ目で2行に折り返すようにした。

これは技術の話というより、看板屋さんの知恵に近い。どんなにいい内容でも、電柱の陰に貼った看板は読まれない。作る前には想像もしなかった種類の知識が、作ると必ず出てくる。

変わったのは、制作の重心だった

こうして、工場は完成した。新しい曲ができたら、やることは3つだけになった。ジャケットの絵を選ぶ。本編用のコマンドを打つ。ショート用のコマンドを打つ。動画まわりの作業時間は、1曲あたり数分に縮んだ。

はっきり変わったのは、制作の重心だ。今までは「曲を作る時間」と「動画に仕立てる時間」が半々くらいだった。これからは、時間のほとんどを曲とジャケットに使える。仕立ての部分は、工場が引き受ける。

いっぽうで、最後まで手元に残った仕事もある。4枚の候補からジャケットを選ぶのは僕だ。AIが掴んだ30秒を「そこでいい」と承認するのも僕だ。歌詞の正本を正しく書いておくのも僕だ。速さはぜんぶAIに渡せたけど、「これでいい」と決める仕事は、ひとつも渡せなかった。

たぶん、それでいいんだと思う。工場は決めない。工場は、決めた人の速度を上げる。

あなたの作業の中にも、「切り抜くだけならボタンでできる。でも、そのひとつ先」が眠っていませんか。