音楽ファイルとMP3やVorbisその他の話

音楽ファイル

近年はYouTubeやiTunes, Spotifyといったストリーミングサービスが主流で、あまり「ファイル」として扱う機会はないかもしれません。

しかし、コンピュータ(スマホ含め)が音を鳴らすとき、それはなんらかの「オーディオデータフォーマット」が使用されています。

細かいことを言うと難しいので、ここではいわゆる「拡張子」を中心にした話をしていきます。

これについて理解することで、ディスクの省スペース化をはかったり、音質を向上させたりすることができます。

音声そのもののデータについて

この話の本編ではありませんが、混同されないようにここで音声データそのものについて述べておきます。

音声データはDSDと呼ばれるものを除くと、「1秒回に何回」(時間)と「1回あたりどれくらいの強さ」(幅)の2つのデータ品質があります。 音は「振動間隔」と「振幅」によって決まりますから、その2つの要素があれば音を表現できます。

前者は周波数であり、音の高さに影響します。より緻密に記録することができれば、より高い音を表現できます。 後者は振幅ですから、音の大きさに影響します。より多くの情報を記録することができれば、より大きな音を表現できます。

後者についてはもう少し補足が必要です。 音が大きくても、再生する音自体をより大きくすることは現実的にはありませんから、結果的に(ボリュームによって最大の音を同じにするのであれば)より小さな音を表現することができます。 クラシックのコンサートなど、ピアニシッシモとスフォルツァンドの両方があるような音源において重要です。

表現可能な周波数に影響するサンプリングレートはCDの場合44.1kHzです。 音声は負の方向にも振れるため、表現可能な最大の周波数は22.05KHzです。

ただし、音楽制作など純粋にコンピュータ上で処理される場合は48kHzが使われます。 通常は両者はほとんど同一視できますが、大抵の場合使われるのは44.1kHzのほうです。 メディアプレイヤーとテレビをHDMIでつないで音を鳴らす、といったケースにおいてはこの違いが問題になることもあります。

ハイレゾと呼ばれる音源では96kHz, 192kHz, 384kHzといった高サンプリングレートが使われる場合もあります。 ただし、一般的に音楽制作においては15kHzを越えるような音は音が飽和してしまわないように1制作過程において消してしまうので、意味があることは非常に少ないでしょう。

音の強弱に影響するビット深度はCDなど一般的には16bitです。

16bitの音自体は普通に聴く分には全く問題がありません。 そもそも一般的な音楽においては高ラウドネスになるように調整しますから、16bitもなくても十分表現可能なことがほとんどです。

しかし制作においては録音、あるいはミックス時の音割れとの戦いになりますから、ビット深度はあればあるほど良い、という状況になります。音楽制作ソフトの内部的には64bit Floatなどより音割れしない音声処理が可能なデータ表現形式を使用したりします。

高ラウドネス音源においても大きな音の中でより強弱が細かく表現できること、ミックスダウン時に制作時のビット深度と同じであるほうが劣化がないことからハイレゾにおいて24bitや32bitのビット深度を採用することは(小さいながらも)意味があります。

オーディオデータフォーマットがどのようなサンプリングレート、ビット深度のデータを扱うことができるかは、そのデータフォーマットにより異なります。

圧縮

形式

音声データをダウンサイジングするために行われる「圧縮」には2つの種類があります。

ひとつは、データの内容を維持したまま表現方法によってサイズを小さくする可逆圧縮(ロスレス)です。 これは音質を損なうことはありませんが、せいぜい半分くらいがサイズを小さくする限界です。

もうひとつはデータの内容を音質に影響の小さい部分から捨てていくことでサイズを小さくする非可逆圧縮(ロッシー)です。 変換によって音質は劣化し、また元に戻すこともできませんが、大幅にデータを小さくすることができます。

lossyの場合は「どれくらいのサイズにするか」というターゲットに基づいてどれくらいデータを捨てるかを判断していきます。 そのため、変換時にはデータサイズの指定が可能で、小さくすればするほど音質は悪くなります。

可変ビットレート

lossyなオーディオデータフォーマットにおいて「1秒あたりどれくらいのデータを格納するか」を決めるのか「ビットレート」です。

同一形式であればビットレートは大きければ大きいほど音質の劣化を防ぎますが、同時にデータのサイズが大きくなります。

そこで、「音の情報が少ないところはデータを少なくし、音の情報が多いところにデータを割く」のが可変ビットレート(VBR)です。

可変ビットレートは音声ファイル全体の平均でターゲットとなるビットレートに近づけるため、固定ビットレート(CBR)よりも聴覚的に音質が改善する可能性があります。

MP3ではCBRが基本ですが、VorbisやAACなどではVBRが基本です。

オーディオデータフォーマット

WAV, AIFF

.wav.aiffの拡張子を持つものは一般的に音声の波形をそのまま記録した「リニアPCM」の形式です。

リニアPCMは波形そのままでデータとして全く加工していない「ビットマップデータ」ですが、マルチバイト列を格納する都合上、リニアPCMをそのままファイルにすることには不都合があります。 (この段落は、リニアPCMはそのままファイルにできない、と理解してもらえれば大丈夫です)

そこでWAVやAIFFといった形式はリニアPCMを格納するための「ガワ」に相当する部分になります。 これによってリニアPCMにデータの表現方法に関するルールと、ちょっとだけ情報を付け加えます。 そのため、これらは普通リニアPCMデータで使われるものの、リニアPCMデータであることを確約するわけではありません。

WAVはWindowsで、AIFFはMac(やApple製品)で使われます。 どちらでもない環境(例えばLinuxやFreeBSD)ではWAVのほうが一般的で、AIFFはかなりマイナーです。

PCMの格納方法としてはOggを使うOggPCMや、Unix伝統のAU形式もあったりしますが、実際に目にすることはほとんどありません。

MP3

動画形式のMPEG-1において音声部分を担うものとして作られたのがMPEG-1 Layer3、略して「MP3」です。

圧縮方法はlossyです。

かなり早期に登場したことから非常に広く普及し、デジタルオーディオプレイヤーを「MP3プレイヤー」と呼ぶような文化も生まれました。 このことから対応製品も多く、非常に柔軟に扱うことができます。

一方、先発の形式だけに機能性や品質面では見劣りします。 サラウンドやハイレゾの音源を格納することはできず、最大のビットレートも比較的厳しい制限があります。 また、同一ビットレートの場合は後発の音源と比べて音質が悪く、特に低ビットレートにおいては目立って悪くなります。

また、特許保護されているためにいくつかの難しい問題が生じることもあります。

また、他の形式と違い、「どのようなソフトウェアを使ってMP3に変換したか」によって音質に非常に大きな差が生じます。

WMA

WindowsがWindows Media Player用に開発したのがWMAです。 圧縮方式はlossyです。 (WMA Losslessを除く)

WindowsがMP3の置き換えを目指して開発していましたが、現在はあまり使用されていません。 バージョン違いがあるほか、仕様違いも存在し、対応機器という点から見るとやや複雑です。

AAC

動画形式のMPEG-4の一部として音声部分を担っているのがAACです。 圧縮形式はlossyです。

iTunesのデータ形式でもあり、また最も普及している動画形式であるMPEG-4で使われることから、恐らく最も広く使われているオーディオデータフォーマットです。

広く採用されている理由には、MPEG-4で使われていることのほかに、DRM(著作権コントロール)が利用可能であることが挙げられ、そのために音楽配信サービスでは広く使われています。

なお、拡張子は.aacのほか.m4aもあります。 (さらに派生した別のコンテナフォーマットに格納されるためにまた違う拡張子である場合もあります。)

また、HE-AACという拡張形式もあります。 こちらは低ビットレートの品質を改善したものです。

AAC, HE-AAC共に音声品質はかなり良く、他の音声フォーマットにとっては強敵になっています。

AACは音声品質は良いものの、AACのロゴが登録商標だったり、技術が特許保護されており、利用にはライセンス料が必要であったりすることから、品質的にAACを凌駕するよりフリーな形式の開発のモチベーションともなっています。

ATRAC

ATRACはソニーがMD(ミニディスク)向けに開発したオーディオデータフォーマットです。 圧縮形式はlossyですが、ATRAC Advanced Lossless(AAL)はlosslessです。 拡張子は.omg, .oma, .aa3, .aalなどです。

ATRACにはいくつかの版の違う(互換性のない)バージョンがあります。 現在使われているのはATRAC3ですが、初代ATRACにバージョン3があり、これがATRAC ver.3と名付けられていたため混乱しやすいものになっています。 これはバージョン3.0と1.3の違いであり、全くの別物です。

ATRACはそれほど広く使われているわけではありませんが、人気のあるポータブルオーディオプレイヤーであるWalkmanで採用されているほか、ソニーグループの音楽配信でも使われているため広く利用はされています。

ATRACはとにかく取り扱えるアプリ/機器が少なく、特にDRMによって暗号化されたATRAC3ファイル(.omgあるいは.omaのファイル)はソニー製のアプリを必要とするため、ソニー製品の愛好家以外からは相当嫌われている形式でもあります。 また、初代のATRACが非常に音質が悪かったため、ATRACに対する悪印象が根付いてしまってもいます。

Vorbis

VorbisはXiph.orgが開発した 完全にフリーな (つまり特許問題などに悩まされることのない) オーディオデータフォーマットです。 圧縮形式はlossy。

192kHzのハイレゾや255chまでのサラウンドにも対応したパワフルなフォーマットです。 音質的にはAACの基本形式であるAAC-LCと互角(低ビットレートは不利)となっています。

つまりVorbisは「高圧縮で音質の良い形式」として知られています。 一般的によく使われる128-192kbpsのVBRにおいては特に(MP3などと比べて)良好な音質を得ることができます。 また、フリーであることから手元で使う場合も、配布する場合も使いやすい形式でもあります。

Vorbisは変換速度の遅さや対応機器の少なさが難点とされてきました。 しかし、コンピュータが高速化した上に変換速度自体も改善されましたし、Vorbis対応の機器も随分増えました。 ただ、WindowsやMacに標準で付属するアプリでの変換ができないのは依然としてネックになっています。

Vorbisはそのデータを格納するためのVBRに対応したコンテナを必要とし、一般的にはOggが使われます。 OggとVorbisは非常によく使われる組み合わせであり、逆にOggをVorbos以外で使用することはあまりないことから、Ogg Vorbisと呼ばれることが非常に多いです。

DRMには対応しておらず、MP3同様に配布を技術的に妨げることがありません。 これは音楽配信などにおいては不利な点ですが、逆に「DRMコントロールをしていない」という安心感のためにVorbisを採用するという手もあります。

Opus

OpusはXiph.orgが開発したオーディオデータフォーマットです。圧縮形式はlossyです。 Opusが利用している既知の特許はすべてロイヤリティーフリーで提供されています。

OpusはXiph.orgが開発してきた音楽用のVorbis, 低ビットレート音源用のCELT, 会話録音や音声通話用の超低ビットレート用のSpeexの3つを一体として、さらに改善した音声フォーマットです。Speex同様にスピーチ向けで、Skypeで使用されてきたSILKのテクノロジーを取り込んでいます。

Opusは非常にハイテクなフォーマットで、3つの変換形式を内包しています。 そして、1つのファイルの中で大きくビットレートが変化した場合は、シームレスに3つの変換方式を切り替えます。 ですから、スピーチに適した非常に低いビットレートから、音楽の高ビットレートまで高い品質を維持し続けます。

Opusは動画フォーマットとして最も一般的なMPEG4ファミリーに対抗するロイヤリティーフリーな動画形式における音声部分として開発されており、徹底して「配信向き」です。

通話やライブ配信において重要なのはいかにリアルタイムに配信できるか、ということです。 そのため、Opusには低ビットレートにおいて低遅延になるように設計されており、標準でHE-AACなどのライバルに対して1/4程度、限界まで詰めれば1/20程度まで遅延を減らすことができます。

また、例えばライブ配信において音楽ライブを配信するとしましょう。 音楽を演奏している部分は当然ながら高音質が求められるため高ビットレートが必要になりますが、間のトークパートではあまり音声が多くありません。Opusの幅広いビットレートへの最適化はこうした音源にも適しています。

実際、ロイヤリティーフリーな動画形式を採用するYouTubeでは、音声部分にごく低品質の音声を除いてOpusを採用しています(動画部分はVP8またはVP9のWebM)。

さらに機能的にも非常に優れており、過去のデータ形式で困った点を全てカバーするような仕様になっています。

つまり、「何も考えずにOpusを使えば解決する」くらい非常に優れた形式なのですが、その最大の弱点は対応機器の少なさです。 パソコンであればアプリを入れることで解決できますが、それ以外ではほとんどの場合Opusを扱うことができません。

なお、Androidで再生する場合、Opusを再生するには.opus拡張子ではいけません。 一般的に.opusはOgg Opusになっていますので、.ogaにすることで再生できるようになります。 また、コンテナとしてOggではなくWebMを使って.webmにすることで動画として再生することもできます。

現実問題として、ビデオの一部としての音声としてはOpusはよく使われている一方、高ビットレートな「音楽ファイル」の形式としてはVorbisと比べて圧倒的な差があるわけではなく、その割に支払う代償(対応機器の少なさ)が大きいためあまり使うことはありません。

また、Opusが広く使われないために、Opusが取り込んだ「従来の問題を解決する機能」のせいで逆に独自の方法で解決したソフトウェアにおいて困ったことになる、なんてこともあります。2

DRMには対応していません。

FLAC

Xiph.orgが開発したオーディオデータフォーマットで圧縮形式はlosslessです。

可逆圧縮のデータフォーマットとしては最も広く使われているものです。 メジャーなフォーマットの少ない可逆圧縮ですが、比較的高圧縮で、なおかつ他の形式よりも処理が軽く、さらにフリーであることが人気に拍車をかけています。

ハイレゾにも対応しており、ハイレゾを扱う上では特に人気のある形式です。 ただし、サラウンドへの対応はやや限定的です。

FLACとVorbisに関しては、どちらか片方だけサポートしている、という機器も多く、どちらかに対応していることがもう片方をサポートしていることへの期待値上昇にはつながりません。

Apple Lossless (ALAC)

Appleが開発したオーディオデータフォーマットで、圧縮形式はlosslessです。

速度、軽さ、圧縮率においてもFLACとそれほど大きな差はありません。 ただ、FLACが圧縮率を調整できるのに対し、ALACはできないため、その点で少し差があります。

また、ALACは現在オープンになっているため、利用上の懸念もありません。 このことからどちらを使うかは対応機器と好みによります。 ちなみに、ALAC自体はDRMに対応していません。

ALACはMPEG4ファミリーにおける可逆圧縮音声としても使われています。

FLAC, Vorbis, Opusを使う

Xiphが開発したオーディオデータフォーマットは高品位で、またフリーで安心して利用できます。 アプリは音声データを取り込んだりする際にはMP3, WMA, AACなどを使うでしょうが、Xiph製のオーディオデータフォーマットを使用するで音質を良くし、なおかつデータ容量を削減できるかもしれません。

これらのフォーマットを使うならば変換が必要です。 ただし、注意すべき点があります。 lossyなフォーマットからlossyなフォーマットに変換した場合、音質はさらに劣化するのであり、losslessなフォーマットに変換したところで音質が改善するわけではない、 ということです。 このような変換を行うとすれば、あくまで取扱い上の都合においてだけです。

最も簡単なのはFFmpegを使うことです。例えばOgg Vorbisに変換するには次のようにします。

ffmpeg -i some_audio_file.wav -c:a libvorbis -qscale:a 6 output_audio_vorbis.ogg

しかしこれはコマンドラインに慣れていないと難しいかもしれません。

こうした変換を行うソフトウェアは色々ありますが、Mimir Yokohamaとしては信頼できるソフトウェアしかご紹介できませんから、ここではVLC Media Playerによる変換をご紹介しましょう。

VLC Media Playerで「メディア」「変換 / 保存」と進み、ファイルを追加します。

変換対象のファイルを追加する

CDから変換する場合は「ディスク」から選択できます。

変換対象のCDを選択する

「変換 / 保存」を選択すると変換先のフォーマットを選択できます。

フォーマットとしてVorbisを選択

設定アイコンをクリックすると「プロファイルのエンジン」という画面となり、「オーディオコーデック」からビットレートなどを設定できます。

ビットレートの設定

あとは出力先を指定したら「開始」で変換するだけです。 ただし、VorbisやFLACはありますが、Opusがありません。 Opusを利用するには「新しいプロファイル」のアイコンを押して例えば次のように設定します。

Opusの設定を追加

「カプセル化」はOgg/Ogmを選択しましょう。

Opusの設定を追加

拡張子.opusで保存するには出力先の拡張子フィルタを外す必要があります。 ただし、.ogaにしたほうが取り扱いは良いでしょう(あるいは、.oggのほうが良いかもしれません)。

あとはプロファイルに追加したOpusを選択して変換を行います。

FLAC, Vorbis, Opusの使いどころ

これは、個人的な意見に基づくお勧めです。

FLAC

私は元がPCMデータであるもの(CDを含む)や、録音したものは基本的にFLACで持っています。 オリジナルデータとしては音を劣化させたくないための処理です。 サイズはかさみますが、それでもPCMのまま保持するよりはサイズを削減できます。

もうひとつ、WAV形式でトラックに対してデータを埋め込むタグが、ちゃんと扱えないソフトウェアが多く、認識されなかったり、最悪ロストしたりします。 その意味で、一般的にタグを使われるFLACのほうがライブラリとしては使いやすいです。

音質を保ったまま音源をストアするにはとても推奨できます。

Vorbis

どのような再生機器を持っているかにもよりますが、フリーで、高品質で、なおかつ扱いも優れたVorbisは「手元で変換する」という状況においては最も使いやすいフォーマットです。

私はポータブルオーディオプレイヤーではQ6(VBRで192kbps程度)のOgg Vorbisを使用しています。 FLACでないのは単純に容量の問題で、私がミュージックライブラリを全てFLACで持ち歩こうと思うと1TBほどのディスクが必要になるためです。Q6のVorbisなら64GBで収まります。

Opus

Opusは再生環境に乏しいため、正直なところあまりつかっていません。 スピーチなどの録音では使うこともありますが、そのような場合ではパソコンとは違う機器で録音することが多いですから、Opusを使いたい場面で使うことがなかなかできません。

オーディオプレイヤーでの再生が難しいのも問題です。 Androidでは拡張子を.ogaにする必要があることからAndroidをオーディオプレイヤーとして使う場合もVorbisほど汎用性があるとは言い難い状況です (そもそも、私はスマートフォンに入れている音楽は厳選しているのでFLACで入れています)。

どうしてもより容量を抑えたい場合には活躍するでしょうが、直接扱うオーディオデータとしてOpusを使う機会はあまりないように思われます。


  1. 人間の耳は聞くことができる「音の量」に限りがあるため、聞こえない音でも鳴っていると聞こえる音が聞こえづらくなります。また、圧迫感を感じるようになります。 そのため、本来聴かせたい音を大きく、はっきりと聴かせるために、聴こえない周波数帯の音は切ってしまいます。 またこれは、そもそも高すぎる、あるいは低すぎる音は聴こえたとしても明瞭には聴こえないため、不快に感じる可能性が高いことから心地よい音楽を作るためにも削除します。↩︎

  2. 具体的には、基準ラウドネス(-23 LUFS)に対する音量の相対を記載するトラックゲイン、アルバムゲインの項目があるのですが、これを使わず独自にノーマライズ機構を持っている、これを認識する、認識しないといった違いにより音がやたら小さくなったり、割れたりします。↩︎