ニューラルコーデックで音楽データを1000分の1に圧縮

音楽を紙に印刷、ニューラルコーデックでデータ量1000分の1

Munenori Taniguchi

Image:Makestreme

Makestremeと名乗るハッカーは、約2分(2.9MB)の音楽データを数枚のQRコードに分割保存する手法を編み出し、電子工作者向けコミュニティサイトHackster.ioに公開した。

この手法は2.9MBのMP3ファイルを約21KBの潜在的トークンに圧縮し、約1000分の1にまで圧縮して8つのQRコードに分割保存するのだという。

Makestremeは、音楽ストリーミングサービスもクラウドストレージもWi-Fiもセルラーネットワークも使わずに、紙に曲全体を書き込むにはどうすれば良いか?と、何かの拍子に考えた。そして、その実現のために実際の音楽ファイルを実用的なレベルまで圧縮し、そのデータをQRコードとして紙に印刷、そこから再び曲を再構築することが可能かどうかを確かめようとしたのだという。

最初に用意されたのは、2分7秒の音楽を収めた容量約2.9MBのMP3ファイルだ。これをQRコードのなかでも最大のデータが収められる「バージョン40」に記録することがゴールとなる。ただ、最大容量のQRコードと言っても、そこに収められるのはわずか3KBでしかなく、2.9MBのデータを切り刻んで収めても、都合1000枚のQRコードができあがってしまうため、そのままではまったく話にならない。

Image:Makestreme

この時点で、普通の人ならさじを投げるところだが、MakestremeはMP3データをもっと圧縮する方法はないかと思案した。もちろん、MP3はすでに非可逆で圧縮されているデータであるため、普通の方法ではそれ以上圧縮しても、ほとんど効果は得られない。

そこでMakestremeが思いついたのが、Meta AIが開発するEnCodecなるニューラルオーディオコーデックだった。通常の音声データ変換に用いられるコーデックとは異なり、ニューラルオーディオコーデックは、ニューラルネットワークを使って音声波形を極限まで圧縮しながら音質を保つことを目指す符号化・復号化技術だ。

EnCodecは音声の波形を離散的な波形を個別のトークンに変換する。そしてもちろん、対応するデコーダーを使ってそれらのトークンを再び音声に変換することが可能だ。Makestremeはこの処理を「楽曲を、別のコーデックが理解できる非常にコンパクトな言語に翻訳するようなもの」だと説明している。

最初の実験では、再生時の目標となるストリーミング帯域幅を3kbpsに設定して変換した。すると、なんと2.9MBのMP3ファイルは、約21KBの潜在的な音声データに圧縮することができた。

ただ、21KBだとバージョン40のQRコード(3KB)には到底収まらない。そこで、今度は帯域幅を1.5kbpsに絞って試してみた。結果は、確かにデータ容量は小さくなったものの、再生したときの音質は聴くに堪えないものだった。

結局、Makestremeは、約21KB(3kbps)のデータを1枚のQRコードに変換するのでなく、8つのQRコードとして分割することにした。これなら、8つのQRコードそれぞれに1バイトのIDとトークンストリームの一部を格納し、紙の表と裏にそれぞれ4つずつ配置することで、アナログレコードのように表裏でデータ全体を収められる。

Image:Makestreme

こうして、Makestremeはデジタルの音楽データを紙の上に物理的に存在させることに成功した。そのQRコードは楽曲を保存したウェブサイトや音楽ストリーミングサービスへのリンクではなく、れっきとした楽曲データであり、紙そのものが記憶媒体だ。

一連のデータの変換をざっくり表すと以下のとおりになる。

曲 → EnCodec → 21KBデータ → 8つのQRコード → 紙 → スキャン → デコード → 曲

なお、この方法は現在はまだ概念実証の段階だが、今後Makestremeは様々な方向に発展させていきたいと考えているとのことだ。考えられる改善点としては、低ビットレートオーディオの品質向上、QRコードおよびエンコードの効率化、印刷されたコードが破損した場合の復旧機能の強化などが挙げられる。

ちなみに、MakestremeはLoRaと呼ばれる無線伝送の仕組みを使い、インターネットを介さずに音楽をある場所から別の場所へ伝送する方法についても説明している。QRコードへの変換も含めて、興味がある人はHackster.ioをチェックしてみると良いだろう。

関連キーワード: