映像に自然な音をつける技術 ~用途と技術例~

アイキャッチ画像

はじめに

こんにちは、2020 年入社のプロダクト開発部に所属しております、渡邉です。このたび新卒研修の課題として「動画から自然な音をつける技術」というテーマで技術調査を行い、その結果をこのようにブログという形でアウトプットすることになりました。ここでは技術の詳細には立ち入らず、「この技術が現在どれぐらいの精度が出ており、現在あるいは将来的にどのような場面に応用できそうか」という点を中心に議論していきたいと考えています。どうぞよろしくお願いします。

“映像に音をつける”とは

図1. “映像に音をつける”とは
まずはじめに以下の議論を円滑に進めるために、映像に音をつけるということを以下のように定義します。 “映像に音をつける” とは
  • ある音のない映像が与えられた際に、なんらかのプロセスを通して与えられた映像と調和する音を付与すること。
この調和する音を付与するということがポイントであり、図1の例では電車の動画に対して「ガタンゴトン」(厳密には文字列ではなく音)というように、実際に電車が線路を通過する際に発生しうる音を付与しています。反対にこの電車の映像に対して調和しない音というのは、例えばホワイトノイズのような音を付与することです。要するに「ちゃんと映像に合うような音をつける」ということです。

なぜ映像に音をつけるのか

映像に音をつける技術と聞いて私が一番気になったのは、「どうしてわざわざ映像に音をつける必要があるのか」ということでした。チャップリンの映画などを代表とする 100 年以上前に撮影されたような映像を除いて、大半の映像には音がついていることが一般的かと思います。ましてやこの 21 世紀、もうすぐ 5G 通信網がサービスインしようとしているなかで音のない映像を利用しなければならない理由とはなんなのか。そして、その映像へ音を後づけするとどんなメリットがあるのか。とても気になりました。
そこで少し調査を行うと、映像に音をつける技術が有用である候補として大きく 2 種類の利用者が浮かび上がってきました。その 2 種類の利用者というのが、
  • コンテンツ製作者
  • 視覚障がい者
です。以降ではこれら2種類の利用者に関して、それぞれが抱えている課題とその解決策を考えていきます。

コンテンツ制作の場合

まず映像や Virtual Reality (VR) などのコンテンツ製作者の現場に注目します。結論から申しますとコンテンツ制作の場合において、課題と解決策は以下になります。
  • 課題:編集作業にかかる時間の増加と求められる質の向上
  • 解決策:音の候補を提示することで制作工程を削減し、編集作業に集中させる


図2. コンテンツ制作の昔と今
ひとつの映画を完成させるにあたって、必要なプロセスは大きく
  1. 撮影
  2. 編集
にわけられます。ここでコンピュータが台頭する前の時代では、爆発などの仕込みを行った上で撮影を行い、その後の編集に入ります。しかしその編集作業というのは、ほとんどフィルムを切り貼りするのみであったのではないかと思います(その切り貼りがとても大変だったのかもしれませんが…)。一方で現在は Computer Graphics (CG) の台頭などから、昔とくらべて編集の比重が高くなっていると推測されます(図2)。

図3. CG 使用量と製作者への負担
また CG などのコンピュータを使った映像編集は非常に様々な効果を映像に付与することができる一方で、その映像効果に対応する音も同様に付与する必要があり、その編集を行う製作者への負担も大きくなっていると考えられます(図3)。実際に九州大学の岩宮眞一郎 名誉教授は
映像コンテンツの良し悪しは音と映像の調和度と高い相関がある[1]

1. 岩宮眞一郎:”「音」 がないと映像はつまらん!”, 日本人間工学会大会講演集 日本人間工学会第 50 回記念大会. 一般社団法人 日本人間工学会, pp. 110-111, 2009.
と発言しており、これによると製作者に期待される音の質は、その映像の質とともに向上するため、製作者への負担増加を更に後押ししていると推察されます。また音に限った話ではありませんが、動画投稿サイトYouTubeへ動画投稿を行っている YouTuber のひとりである HIKAKIN さんは、2018 年 3 月 19 日放送の「プロフェッショナル 仕事の流儀」(NHK)にて
7分の動画を完成させるため、編集作業に6時間かけている

2018年3月19日放送の「プロフェッショナル 仕事の流儀」(NHK)
と発言しており、個人レベルにおいても編集作業の負担の大きさがうかがい知れます。

図4. 映像に調和する音素材の有無による制作作業工程の違い
そのような非常に重たい負担である編集作業のひとつである音の付与を代替してくれるような、あるいはその候補をいくつか挙げてくれるようなシステムがあれば、その作業負担を減らすことができると考えます。
図4では音を付与するために必要な工程として、YouTube: ハリウッド映画特殊効果音の作り方を大公開!を参考にして
  1. 音がなる物を探す
  2. それを使った録音
  3. 編集
を挙げています。これらの工程のうち、音の候補を挙げてくれるようなものがもしあれば、その工程は
  1. 編集
のひとつにまで絞り込むことができます。製作者はコンピュータから離れて、わざわざ素材を探したり音を録音したりする必要がなくなるのです。

視覚障がい者の場合

次に視覚障がい者の場合について考えていきます。結論から申しますと、この場合における課題と解決策は以下が挙げられます。
  • 課題:他の感覚で代用するための訓練が必要
  • 解決策:訓練の必要がなく、かつ自然な音を提示し、ストレスのない生活を実現する


図5. ダニエル・キッシュさんの TED トーク
視覚障がい者にとって使うことができない視覚を代替するような音を出力できれば、目が見えない彼らを救うことができそうです。しかし、本当にその必要があるのでしょうか。図5に記載の YouTube リンクでは、視覚障がい者であるダニエル・キッシュさんの TED トークが再生されます。彼は口で舌打ちをし、その直後に周囲の物体から帰ってくる反射音を聞くことによって、周囲の環境を把握できるといいます。これはエコーロケーションと呼ばれる技術であり、視覚障がい者のなかには既にこうして視覚を使わずとも他の感覚によってそれを代替できている方も存在します。

図6. 点字と点字ブロックによる視覚の代替
このエコーロケーションでは聴覚を用いていますが、他にも点字や点字ブロックなどのように触覚を用いた方法も存在します(図6)。しかしこれらを自在に操るためには、大きな問題があります。それはこれらの感覚を磨くための、十分な訓練です。

図7. Sight(http://thesight.jp/press/SightLeaflet201510.pdf より引用)
そこで開発されたものが、Sight です(図7)。Sight は視覚障がい者の把握することが困難な周囲の環境を 3D カメラを使って計測し、その環境に関する情報を音に変換することでユーザに伝えます。Sight はエコーロケーションの役割を肩代わりしてくれるため、訓練負担を大幅に下げることが可能です。

しかし一方で、変換された音は目立つためにあえてあまり快適とは言えないような「グワングワングワン」というようなゲームの効果音のような音になっています。(2020 年 4 月初旬時点では YouTube にデモ動画があり、音を聞くことができたのですが、現在は限定公開に設定されているようです。) このような音は障害物などに接近しており、危機に瀕する際には有効だと思いますが、普段からこのような音を聞いて生活を行うことはあまり現実的ではないと推測されます。 そこで私はこのような音を、その機能を保ちつつ、少しでも人間にとって心地よい音に変えられると良いのではないかと考えています。そのもっとも類似した例として、電車の発車メロディが挙げられます。これは
発車メロディには、乗車を促し、注意を喚起するだけではなく、心地よさを演出するという役割も求められる
ITmediaビジネスONLiNE 近距離交通特集:向谷実氏が考える鉄道と音楽(前編)――発車メロディ3つのオキテ (1/3)
という見方に基づいて設計されているそうです。 私はこの目標を達成するための第一段階として、まずは映像から自然な音を付与する技術が必要だと感じています。

映像に音をつける技術

ここまでで、映像に自然な音をつける技術の需要と用途を説明しました。そこでここからは、実際に映像に音をつける技術について少し掘り下げていきます。今回の調査で発見した文献で提案されている技術を表1に箇条書きでまとめました。それらの技術は大きく音を生成する技術音を検索する技術に分けられます。

表1. 映像に音をつける技術例

技術例音への変換方法考えられる応用場面
いくつかのシーンにおける”自然な音”を生成[2]生成– 映像・VRコンテンツ製作者のための音源制作支援
– 視覚障がい者のための周辺環境把握支援
人が積極的に鳴らしたときの”音”を生成[3]生成– 映像・VRコンテンツ製作者
人が話している映像から”音声”を生成[4]生成– 視覚障がい者のための会話支援
映像から関連する”音楽”を検索[5]検索– 映像・VRコンテンツ製作者のための音源制作支援
ここでは「コンテンツ製作者支援と視覚障がい者支援の双方を達成するために、映像に”自然な音”をつけること」が目的であるため、今回は「いくつかのシーンにおける”自然な音”を生成[2]」する技術に着目します。

映像から自然な音を”生成する”技術

まずはこの技術の紹介ビデオを見て頂けると何をしているのかが、わかりやすいと思います。ビデオはまず Visual to Sound というタスクの説明から始まります。次に映像は同じで音が異なる 2 つのビデオ流し、どちらが生成された音なのかを尋ねるクイズ形式になっています。最後に失敗例をいくつか紹介して終了という流れです。ちなみに私が一番好きな失敗例は、最後のドラムを叩いているのにお鍋の蓋を叩いたときのような音が流れてしまった例です。このように映像から音を生成することができるようです。次にこの技術の入出力構造について簡単に見ていきます。

入出力構造

図8. 映像から音を生成するニューラルネットワークの構造([2] Figure 3. を元に著者が手を加え作成した)
この技術は Zhou らが執筆した論文のなかで提案されたニューラルネットワークをベースとした推定技術です[2]。その論文の中では推定技術に関して3つの DNN の構造を提案していますが、ここでは最終的な評価結果が比較的良好であった RNN を用いたものについて説明します。少しその中身を展開すると、ニューラルネットワークの中でも画像を得意とする畳み込みニューラルネットワーク(Convolutional Neural Network: CNN)と時間が関わるデータが得意な再帰型ニューラルネットワーク(Recurrent Neural Network: RNN)の組み合わせで構築されています。対象が映像という時間的な関係をもつ複数枚の画像であることを考えると自然な構造だと思います。 図8にはこの技術の入力と出力である映像と音に加えて、簡単なニューラルネットワークの構造を示しています。このニューラルネットワークでは、動画の一部分を複数の画像に切り出し、対応するオプティカルフローとともに DNN を利用して音声の生成を行っています。DNN とは、一般的なニューラルネットワークの中でも多くの層を用いたニューラルネットワークを指します。この技術の場合、その内訳は前段に画像から音を生成するための特徴を抽出する CNN と、後段にその特徴を使って音の波形を生成する SampleRNN が続く形になっています。ここで SampleRNN [6] というのは RNN を応用した技術のひとつであり、音声信号などのサンプル点が非常に多く、かつ長期的な特徴と短期的な特徴の両方を持つような信号を生成するための工夫がなされています。 また特徴的な点がもうひとつあります。それはオプティカルフローを入力に加えている点です。論文内ではこのオプティカルフローをわざわざ事前にすべて計算を済ませた後に、通常の画像とあわせて入力に用いています。なぜ事前計算をしてまで、このオプティカルフローを導入したのでしょうか。

オプティカルフロー

オプティカルフローに関する説明を行っているWebページを引用すると
オプティカルフローとは物体やカメラの移動によって生じる隣接フレーム間の物体の動きの見え方のパターンです
鳥取大学 小山田研究室 > OpenCV-Python Tutorials 1 documentation > OpenCV-Python チュートリアル > 動画解析 > オプティカルフロー(Optical Flow)
と説明されています。ざっくりいうと「映像内における画素の動く方向と量を表すもの」と考えて良さそうです。

図9. オプティカルフローの簡単な例
簡単な例を図9に描きました。図9では、時刻 1 のときには画像の真ん中にあった太陽が、時刻 2 では右側に動いていることがわかります。このときのオプティカルフローは右方向という方向と、動いた距離のことをいいます。

図10. 動画を用いたオプティカルフローの実例
オプティカルフローの例として、実際の映像に対応するオプティカルフローを表示した動画を図10に示しました。この動画では、上が紫、右が赤、下が黄緑、左が水色といったように、方向が色で表されており、またその距離が彩度で表されています。ただし、映像の中でどの方向に動いているかを表しているに過ぎないので、カメラ自体の動きは考慮されておらず、実際に動画内の鳥が飛行している方向と必ずしも一致するわけではないことに注意してください。 ここで普段の生活を思い返してみると、音が鳴るような場所では多くの場合において物の動きが大きいように思います。そこでこの画素の動きを表現できるオプティカルフローを画像とあわせて入力することで、音が鳴る場所がわかることが期待されます。

出力する音の妥当性

最後に論文内で報告されている音の評価について言及します。評価方法は「ひとつずつ動画を人間に見せ、作られた音なのかどうかを2択で判断してもらう」というものです。評価尺度は「作られた音を本物と判断した割合」です。ここでは、オプティカルフローを入れた場合の DNN での評価値と、オプティカルフローを入れない場合の DNN での評価値を、それぞれ表2に示します。

表2. 映像から音を生成する技術の評価結果

また、この DNN の学習・評価に用いたデータセットには合計 10 カテゴリが存在し、表の上段にはそのそれぞれのカテゴリごとに DNN を別々に学習・評価した結果を示し、下段には 1 つの DNN で全 10 カテゴリを学習・評価した結果を示しています。具体的なカテゴリ名は「赤ちゃんの泣き声、人のいびき、犬の鳴き声、etc…」の全 10 カテゴリです。どれも特徴的な音を出すものと見受けられます。

表2上段をみると、それぞれのカテゴリにおいて学習・評価を行った DNN はオプティカルフローを導入する場合「特定の 1 カテゴリにおいて 73.36 % で人間を騙せるほどのクオリティの音を生成できた」ということになります。

一方で、オプティカルフローを導入しない場合は 72.63 % と報告されています。オプティカルフローの有無であまり変化がないように見受けられますが、Drum カテゴリのみの結果に着目すると、オプティカルフローありでは 70.83 % 、なしでは 64.58 % となっており、音のタイミングがシビアなカテゴリにおいて特に良い結果をもたらしているようです。

しかし私個人的には、この実験設定はあまり実用的ではないと考えています。なぜならば、将来的にあらゆるカテゴリの音を生成できるような DNN を構築するとなれば、この実験設定のままでは、そのすべてのカテゴリの数だけの DNN が必要となるからです。その上、どの DNN に映像を入力するかを別途判断する必要があります。 一方表2下段では1つのDNNで全 10 カテゴリを学習・評価した場合の評価値を示しています。この値は提案論文の 5.5 節 Additional experimentsのなかで言及されており、「特定の 10 カテゴリにおいて 46.29 % で人間を騙せるほどのクオリティの音を生成できた」ということになります。紹介ビデオでの結果を聞く限りは少なくとも明らかに理解不能な音ではなかったため、私の直感とも一致する評価結果であると感じました。

しかし「本物の音のうち本物だと判断された割合が 91.43 %」であることも論文内では報告されており、まだまだ本物の音には遠いのかもしれません。また論文が対象としたデータセットに含まれている音のカテゴリはどれも特徴的であり、生活音の中では大きな音の部類に入るものを対象としているようにも感じます。このため、より音のカテゴリを増やすと、この評価指標値は下がってしまうと考えられます。

これらを鑑みると現状では
  • 視覚障がい者支援などの音の忠実さが求められる用途には不向き
  • コンテンツ制作支援などの人間による補正が可能な用途には、カテゴリを絞ることで利用は可能
といった結論に落ち着きます。

まとめ

映像に自然な音をつける技術に関して、前半ではその必要性を、後半では現在存在する実際の技術例を紹介させて頂きました。より詳しく述べると、この技術を必要としている方は VR や映像制作などに関わられているコンテンツ制作者や、周囲の環境を視覚以外から把握する訓練に苦労している視覚障がい者でありました。その中で現在存在する技術として DNN とオプティカルフローを組み合わせた方法が提案されており、一定の能力を持ちつつも、あらゆる映像から正確な音を再現するまでには至っていない状況であることを説明しました。このため現在応用可能な領域は、コンテンツ制作支援などの忠実さがあまり求められない用途に限るのではないかと考えています。これを箇条書きにまとめたものを以下に示します。
  • 考えられる用途
    • コンテンツ制作支援(Virtual Reality: VR、映像制作など)
    • 視覚障がい者支援
  • 技術の現状
    • DNN とオプティカルフローを組み合わせた方法が提案されている
    • 現状コンテンツ制作支援などの忠実さがあまり求められない用途には応用できる可能性がある

感想

ALBERT に入社しておよそ 3 ヶ月が過ぎました。リモートでの研修ということではじめは不安ではありましたが、徐々にそのような環境にも慣れていき、現在もリモートでこのブログを書いています。研修ではデータ分析に必要な Linux, Python の基本、機械学習や統計を用いた分析手法を満遍なく教わりました。私はプロダクト開発部所属ですが、データサイエンティストとして一通りの分析の流れを体験した非常に貴重な機会でした。 同時にデータサイエンティストが抱える課題も研修の中で少し垣間見れたと思っています。例えばデータサイエンティストは基本的に Jupyter Notebook を使って分析コードを書き、その結果をグラフや文章として残します。一方で分析作業は非常に多くの試行錯誤の繰り返しです。そのため、その中で書かれたコードというのは、私も含めてですが、たとえ分析者が意識していたとしても自然と読みづらいコードとなってしまうことが少なくないようです。プロダクト開発部では、そのような課題を解決できるようなお手伝いができればと考えております。

ALBERT では、データサイエンティストを募集しています。ぜひ採用​ページをご覧ください。

参考文献

  1. 岩宮眞一郎:”「音」 がないと映像はつまらん!”, 日本人間工学会大会講演集 日本人間工学会第 50 回記念大会. 一般社団法人 日本人間工学会, pp. 110-111, 2009.
  2. Yipin Zhou, Zhaowen Wang, Chen Fang, Trung Bui, and Tamara L. Berg. “Visual to sound: Generating natural sound for videos in the wild.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.
  3. Andrew Owens, Phillip Isola, Josh McDermott, Antonio Torralba, Edward H. Adelson, William T. Freeman. “Visually indicated sounds”, Proceedings of the IEEE conference on CVPR,  pp. 2405-2413, 2016.
  4. Konstantinos Vougioukas, Pingchuan Ma, Stavros Petridis, Maja Pantic. “Video-Driven Speech Reconstruction using Generative Adversarial Networks”, arXiv preprint arXiv:1906.06301, 2019.
  5. Sungeun Hong, Woobin Im, Hyun S. Yang. “Content-Based Video-Music Retrieval Using Soft Intra-Modal Structure Constraint”, arXiv preprint arXiv:1704.06761, 2017.
  6. Soroush Mehri, Kundan Kumar, Ishaan Gulrajani, Rithesh Kumar, Shubham Jain, Jose Sotelo, Aaron Courville, Yoshua Bengio. “SampleRNN: An unconditional end-to-end neural audio generation model.”, arXiv preprint arXiv:1612.07837, 2016.