音楽データをiTuensで管理するようになってた
昔、iTuensがない頃は、フォルダごとにアーティストを分けて、アルバムで分類したりして手動管理をしていたなぁ…(遠い目w)
iPhone3Gを購入した頃から、mp3を入れて聞くようになり、でもiTuensをそこまで信頼していなかったので、手動管理と並行して利用していた。
ところが、今はどうかというと、フォルダでの手動管理は全く行わなくなり、すべてiTuens上で管理している。
CDが作成したくなればプレイリストを作成したり、デバイスごとのプレイリストも作成してある。
家族用に、自分用とか子供用か…。
並び替えが上手くいかない
自分の使い方では、車のオーディオにUSBケーブルでiPhoneを接続し、シャッフルで再生するので、並び替えをすることが今までなかったので、まったく気にしていなかった。
ところが、子どもたちが使うようになり、アーティスト名や曲名で並び替えをすることが多いらしい。
その時、同じアーティストが別々になったり、曲名が綺麗に並ばなかったりするよ!と言ってきた。
確か、日本語用のメタデータ領域が追加されたのは、もう何年も前の事だったか覚えていないのだけれど、かなり昔の事だったと思う。
だから、「曲の情報」を見ると「読みがな」フィールドがあって、入力すれば正しくソートされる仕組みになっているはず。
ところが、すでに入れてある日本語の曲、それぞれに読みがなを振るのは気の遠くなる作業で、コンピュータを使う人間(面倒くさがり)に向かない作業だ。
早速、良い方法はないかと検討することに。
当然、同じようなことを考えた人もいるわけで…。
ふりがなの自動入力
- MeCabをインストールする(辞書も用意)
- AppleScriptを作成
- 実行(iTuensの曲データからMeCabでふりがなを生成、読みがな項目に入力)
という流れらしい。
以前、Linuxでファイルサーバを立てた時にkakasiのお世話になったなぁと思いつつ、MeCabを入れる。
MeCabのインストール
http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html
に詳しく書かれているので、参考にすればOK。
mecab-0.996.tar.gzをダウンロード
$ tar xzvf mecab-0.996.tar.gz
で、フォルダを作成して、その中にソースファイルが展開される。
$ cd mecab-0.996
として、中に入ったら、以下の手順でOK
$ ./configure
$ make
$ sudo make install
これで、MeCabのインストールは完了。このソースには辞書が入っていないので、辞書を入れる。
mecab-ipadic-2.7.0-20070801.tar.gzをダウンロードしたら、同様に展開して作成する。
$ tar xzvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure
$ make
$ sudo make install
でOK。chibiegg日誌では、make installは不要と書かれているけれど、現在は必要なので間違えないように。
動作確認をして、動けばOK。
$ mecab
すもももももももものうち
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
正しく、品詞分解してくれている。
AppleScriptの保存
--確認ダイアログ
display dialog "ふりがなをふっていいですか" buttons {"No", "Yes"} default button 2
set button_a to button returned of result
if button_a = "Yes" then
--iTunesのスクリプト
tell application "iTunes"
try
set name_list to {}
set select_track to a reference to selection
if select_track as list is {} then return
repeat with i in select_track
set end of name_list to i
end repeat
repeat with i in name_list
--アーティスト
set hurigana_text to sort artist of i
if hurigana_text is "" then
set original_text to artist of i
set hurigana_text to my hurigana(original_text)
set sort artist of i to hurigana_text
end if
--アルバム名
set hurigana_text to sort album of i
if hurigana_text is "" then
set original_text to album of i
set hurigana_text to my hurigana(original_text)
set sort album of i to hurigana_text
end if
--曲名
set hurigana_text to sort name of i
if hurigana_text is "" then
set original_text to name of i
set hurigana_text to my hurigana(original_text)
set sort name of i to hurigana_text
end if
end repeat
display dialog "完了"
on error
display dialog "エラー発生" buttons {"OK"} default button 1
end try
end tell
end if
on hurigana(original_text)
set mecab to "echo " & quoted form of original_text & " | /usr/local/bin/mecab -Oyomi "
mecab as text
do shell script mecab
return katahira(result)
end hurigana
on katahira(original_text)
set hiracase to "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをんぁぃぅぇぉがぎぐげござじずぜぞだぢづでどっぱぴぷぺぽばびぶべぼゃゅょ"
set katacase to "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲンァィゥェォガギグゲゴザジズゼゾダヂヅデドッパピプペポバビブベボャュョ"
set hiragana_text to characters of original_text
repeat with char in hiragana_text
set num to offset of char in katacase
if num is not 0 then
set contents of char to character num of hiracase
end if
end repeat
return hiragana_text as text
end katahira
ありがたく使わせていただきました。
ただ、最初のdialogの「NO」「OK」は紛らわしいので、No/Yesに変更だけして…。
これを実行すれば、選択している曲の読みがなフィールドを自動で補ってくれます。
これで、これから曲を増やしても、時々実行してやればOKですね〜。
もちろん、100%正確な読みを入れてくれるわけではないですが、効率は大きく違いますので…。
こんなの手で入力したら気が狂いますもんww
コメント
コメントを投稿
励みになりますので、簡単で良いので一言くださいませ。