用語集

歌詞とは何ですか?

歌詞フィールドには、音声ファイルや動画ファイルの中にテキストとして曲の歌詞が保存されます。形式によっては、言語コードも含まれます。ffprobe では、Lyrics は 0 または 1 のフラグとして使われる場合もあります。

lyrics

歌詞は楽曲の言葉を指します。メタデータでは、歌詞フィールドにその言葉がテキストとして音声ファイルや動画ファイルの中に保存されます。ffprobe のレポートでは、歌詞フラグとして表示される場合もあります。

ID3v2 規格では、このテキストフィールドを「楽曲の歌詞」または「その他の声による発声のテキスト書き起こし」として定義しています。テキストは音声とは別に保存されるため、このフィールドを読み取れるソフトウェアでないと内容を確認できません。

どのファイルがそれを持っているか

ファイル形式ごとに、歌詞はそれぞれ固有のフィールド名で保存されます。よく使われる形式での名称は次のとおりです。

  • MP3: ID3v2 フレームのうち、プレーンテキストには USLT、タイミング付きテキストには SYLT が使われます。
  • WAV と AIFF: ファイルに ID3 タグが含まれている場合は、同じ ID3v2 フレームが使われます。
  • FLAC と OGG: Vorbis コメントとして保存されます。MusicBrainz Picard ではこの項目名を LYRICS としていますが、名称を固定する仕様はありません。
  • M4A と MP4: メタデータ項目 ©lyr に保存されます。
  • MKV: Matroska タグ LYRICS に保存されます。
  • WMA と WMV: 属性 WM/Lyrics と WM/Lyrics_Synchronised に保存されます。

プレーン歌詞と同期歌詞

プレーンな歌詞は、タイミング情報を持たない1つのテキストブロックです。同期歌詞は、各テキスト片を録音中の特定のタイミングに結び付けます。これにより、カラオケなどで音声に合わせて歌詞を表示できるようになります。

ID3v2 の SYLT フレームでは、各テキスト片にタイムスタンプが付きます。タイムスタンプはファイルの先頭からの経過時間を、ミリ秒または MPEG フレーム数で表します。

その値がどのように表示されるか

プレーン値は通常のテキストで、改行を含めることができます。同期テキストの場合、ExifTool は各エントリの前に角括弧付きのタイムスタンプを付けます。秒単位には [MM:SS.ss]、MPEG フレーム単位には [FFFF] を使用します。

1つのファイルに複数言語の歌詞を含めることもできます。ID3v2 では、各 USLT および SYLT フレームに ISO 639-2 に準拠した 3 文字の言語フィールドがあります。例えば次のような値です。

  • 英語には eng
  • ドイツ語には deu または ger
  • 言語が不明な場合には、ID3v2 仕様どおり XXX

説明のない ID3v2 USLT フレームでは、FFmpeg はキーに言語コードを追加します。例えば英語テキストでは lyrics-eng のようになります。未知の言語では、FFmpeg 9.0 は lyrics-XXX を表示し、開発版コードでは単に lyrics と表示します。ExifTool も、選択した言語に対して同じパターンを使用し、Lyrics-eng のように出力します。

ストリームフラグとしての歌詞

FFmpeg プロジェクトのファイルリーダーである ffprobe のレポートでは、歌詞がストリームフラグとして 0 または 1 で示されることもあります。FFmpeg の説明によると、そのストリームには楽曲の歌詞が含まれているという意味です。このフラグ自体にテキストは含まれません。

ffprobe リーダーの -show_streams オプションは、各ストリームについてこのフラグをKaraoke フラグの隣に表示します。そのため、音楽を含まないファイルでも 0 が表示されることがあります。0 であっても、そのファイルに歌詞テキストが存在しないことの証明にはなりません。

テキストの出所

歌詞テキストは音声そのものから生成されるわけではありません。人またはプログラムがテキストを追加する必要があります。

タグ付け用ソフトウェアでこのフィールドを書き込むことができます。MusicBrainz Picard のデータベースには歌詞が保存されていないため、歌詞テキストにはプラグインまたはスクリプトが必要です。

変換処理によって、歌詞テキストを新しいファイルに引き継ぐことができます。FFmpeg はデフォルトで最初の入力ファイルからグローバルメタデータをコピーします。そのため、自分でタグ付けしていない場合でも、変換後のファイルに元ファイルの歌詞テキストが残ることがあります。

ファイルにとって重要な理由

歌詞テキストフィールドには、楽曲の全文を保存できます。ファイルを共有すると、プレーヤーが歌詞を表示しない場合でも、そのテキストも一緒に共有されます。

歌詞テキストフィールドがないことからは、その楽曲について何も分かりません。歌詞のある曲でも歌詞テキストが設定されていない場合があります。また、テキストが実際に聞こえる歌詞と異なることもあります。

1つのファイルに複数の歌詞値を持たせることもできます。例えば、プレーンテキストと同期テキストの両方や、2つの言語のテキストを含めるといった場合です。Matroska ファイルでは、LYRICS タグが字幕トラックを複製することもあります。仕様書では、通常は両方を編集するべきだとされています。

メタキー