2015-02-03

Medolyで扱う歌詞について

今さらですが、Medoly扱える歌詞データの種類について少し説明します。
(字幕ファイルについては、ここでは除外します。 )


同期歌詞・非同期歌詞


まず、歌詞データには同期歌詞と非同期歌詞の2種類が存在します。
同期歌詞とは、曲の再生時間に同期して歌詞が進行していくタイプの歌詞となります。歌詞データの中に、歌詞のテキストとタイムコードが埋め込まれおり、再生プレイヤーがそれらを読み取り、画面に歌詞の進行状態を表示します。同期する場合、歌詞の行単位で同期する場合と、文字単位で同期する場合があります。一般的によく見かけるのは、行単位の同期歌詞です。というか、文字単位の同期は作る手段が限られてくるので、あまり見かけないかもしれません。
非同期歌詞とは、曲の再生時間と同期しない歌詞です。時間情報等が存在しない、要するにただの歌詞テキストです。

 

内蔵歌詞・外部ファイル歌詞


歌詞には、内蔵歌詞と外部ファイル歌詞があります。
内蔵歌詞は、音楽ファイルの中にタグ情報として歌詞が埋め込まれているものです。音楽ファイルの形式によって、歌詞が埋め込めるかどうかは変わってきます。また、埋め込まれる歌詞は非同期歌詞(すなわち、ただのテキスト)の場合が多いですが、MP3の場合は同期歌詞を埋め込む専用のタグが用意されています。
外部ファイル歌詞は、音楽ファイルとは異なる別ファイルです。明確な定義があるわけではありませんが、歌詞ファイルを.txtファイルとして作成した場合、「sample.mp3」という名前のファイルに対し、同じフォルダ上に「sample.txt」という拡張子を変えた歌詞ファイルを配置するのが一般的です(歌詞の形式によって拡張子は異なります)。Medoly(等の歌詞対応プレイヤー)は、外部ファイル歌詞が配置されていた場合、自動的に歌詞を読み込みます。
外部ファイル歌詞の場合、音楽ファイルの形式に依存せず歌詞を記述する事ができるというメリットがあります。一方、iOSのように一般的なファイルシステムと異なるシステム上では扱えない場合がある、というデメリットがあります。(なお、iOSで外部歌詞ファイルの読込みに対応させたLyritag Musica といったアプリもあります。)
ここでは、字幕ファイルについては特に触れませんが、字幕ファイルについても外部ファイル歌詞と同様の扱いとなります。


歌詞データの種類


内蔵歌詞の場合、以下のような種類があります。Medolyではこれらの音楽ファイル(タグ)から歌詞を読み取る事ができます(ライブラリ依存)。
  • MP3: USLT歌詞(非同期)、SYLT(同期)、Lyrics3(同期)
  • AAC(m4a):©lyr(非同期)
  • OggVorbis / FLAC (Vorbis Comment): LYRCS(非同期)
  • Windows Media: Lyrics(非同期)
  • APEv2: WM/Lyrics(非同期)
各タグの詳細については、Tag Mappings - Documentation - MusicBrainz Picard を参照してください。
基本的に、内蔵歌詞は非同期歌詞となります。AACやOggVorbis等は自分でタグを拡張できるので、その気になれば独自にタグを定義して同期歌詞を埋め込む事ができますが、一般的に広く使われるようなタグは残念ながら知りません。同期歌詞は、音楽ファイルに依存しない外部ファイルで作成するのが一般的のようです。
ちなみにMedolyの独自機能として、非同期歌詞のタグに、下記で示したKRAフォーマットまたはLRCフォーマットのテキストで歌詞を記述すると、勝手に同期歌詞として読み取ります。もちろん、他にそういったアプリは見当たらないため、Medoly独自の機能となる点はご了承ください。


次に外部ファイル歌詞の場合、フォーマットには以下のような種類があります。
テキストとは、単純なテキストファイルの事です。 テキストファイルに歌詞を書込めば、それはもう立派な歌詞データです。他2つは、歌詞の間にタイムタグと呼ばれる進行時間を記述したデータで、やはりテキストファイルです。これらの形式については、フォーマット仕様が書かれたURLを掲載していますが、正式に決定されたフォーマットは存在しません。あくまでも、ユーザー間で決まってるような状態です。
これらの歌詞とファイルの拡張子は、テキストファイルは「.txt」、KRAフォーマットは「.kra」、LRCフォーマットは「.lrc」となるのが一般的ですが、明確に決まっているわけではありません。特に2番目のタイムタグ歌詞は曖昧になっており、ツールによって「.txt」「.kra」「.lrc」の3種類の何れでも保存される可能性があります。個人的には、判別しやすいように「.kra」で保存されることをお勧めします。


歌詞データの作成方法


歌詞データは、自分で簡単に作る事ができます。
もちろん、非同期歌詞であれば、歌詞掲載サイトから歌詞テキストを取得して、外部ファイルまたは内蔵歌詞として作成すれば問題ありません。
ただここでは、同期歌詞を作るための代表的な作成ツールを挙げます。私の作成環境がWindowsなので、Windows用ソフトだけ挙げていますが、他の環境にもあると思います。
使い方は各ツールのヘルプを参照してもらうとして、ほぼ共通している使い方は、「最初に歌詞テキストを用意した上で、流れている音楽に合わせてボタンやスペースキーを連打する」ことです。ボタンを押したタイミングの再生時間が、タイムタグとして記録されていきいます。

MiniLyrics

Windows Media PlayerやVLC等、他のプレイヤーの再生と同期して歌詞を表示させるツールですが、歌詞作成ツールとしても利用できます。
基本的にはLRCファイルを作成しますが、SYLT、Lyrics3でMP3に埋め込むこともできます。
同期歌詞の作成は行単位での作成となりますが、表示だけなら文字単位の同期も可能です(LRC、Lyrics3のみ)。
注意点としては、再生ソフトによっては、VBRのMP3を再生した際、再生時間が大幅にずれてしまい、歌詞がうまく同期しない場合があります。 VLCやfoobar2000等、VBRのMP3の再生時間を(それなりに)正確に取得できるソフトを使いましょう。
実は、作成した歌詞の登録及び、登録された歌詞の取得も可能ですが、それは後述。

RhythmicaLyrics

タイムタグ歌詞フォーマットの歌詞を作成する事ができます。こちらは、文字単位の作成が可能で、私が知る限りほぼ唯一の文字単位の同期歌詞が作成できるツールです。
歌詞を作成する際、Lyrics Master というソフトが別途用意することで、歌詞テキストの取得が可能です。
タイムタグ情報 DataBase  というサイトへの同期情報登録及び、登録された同期情報を取得する事ができます。歌詞サイトの歌詞と組み合わせて、同期歌詞を自動的に作成できます。ちなみに、歌詞そのものは登録されません。

K5 Lyrics Editor

SYLTタグへの書込み及び、タイムタグ歌詞の書き出しをサポートしています。行単位の同期歌詞を作成することができます。
SYLTの文字コードは、Shift_JIS及びUTF-16に対応しています。 また、多くの携帯音楽プレイヤーの独自歌詞タグをサポートしています。

余談ですが、外部ファイル歌詞は保存する文字コードは特に決まっていませんが、UTF-8辺りに統一しておくのが無難です。Shift_JISのよう な、国内固有で使用されるような文字コードは、海外アプリ等で対応されない可能性が高いためです。なお、改行コードはCR+LFにしておくと良いかと思い ます。内蔵歌詞について文字コードで悩むことは少ないと思いますが、MP3はタグの文字コードをUTF-16LE、タグのバージョンをID3v2 (2.3) で統一しておくのが最も問題を起こしにくい組み合わせになると思います。


歌詞データの取得方法


歌詞データを取得する方法についてです。恐らく、多くの人が必要としてるのはこの情報かと思います。
もちろん、歌詞掲載サイトからテキストを取得して非同期歌詞として扱うのが最も簡単です。それを補助するツールとしては、Lyrics Master が有名です。
ただここでは、同期歌詞を取得できるツールについて取り上げたいと思います。なお、主に日本語歌詞を対象にしています。

MiniLyrics

歌詞データの作成方法でも挙げましたが、MiniLyricsは歌詞データの取得が可能です。歌詞自体は、ViewLyrics.comから参照できます。
…が、データの出所が色々アレなのでこれ以上触れておくのはやめておきます。

RhythmicaLyrics

こちらも歌詞データの作成方法で挙げたツールです。こちらは、タイムタグ情報 DataBasから 歌詞の同期情報を取得することができます。別途、Lyrics Master というツールを使用することで、歌詞掲載サイトから取得した歌詞と、同期情報を組み合わせて、同期歌詞を作成することができます。
たまに歌詞情報に齟齬が生じて、時間がズレたりしてしまうのが難点。
同期情報が取得できる歌詞の量は、ユーザの登録状況次第です。あと、歌詞の傾向が偏ってます…。


GetTimetagLyrics

こちらは、上記同様 タイムタグ情報 DataBasより歌詞を取得できます。RhythmicaLyricsから歌詞ダウンロード機能のみを抜き出した感じです。同様に、Lyrics Master が必要になります。


最後に


上記のように、Medolyで取り扱う歌詞についてダラダラ書いてきたわけですが、同期歌詞のようなデータは、ネット上でユーザが好き勝手やってるというのが現状です。個人的に、同期歌詞のようなフォーマットは、音楽配信する側が正式に対応してほしいなぁ、と思っているのですが、現状では厳しい感じです。Googleが検索結果に歌詞を表示させるなんて話もあるので、もしかしたらこれから注目されていくことはあるかもしれませんが…。
せめて、音楽配信サービスで購入できる全ての楽曲ファイルに、歌詞内蔵ぐらいはしてほしいものです。あと、コピー&ペーストもできない広告だらけの歌詞掲載サイトは是非とも滅んでいただきたいです。