iTunesの曲に自動でふりがな登録

iTunesは日本語の曲名等の並び替えを正しく行うためにふりがなを登録できるようになっています。が、何千曲とあるライブラリに手作業での登録は大変です。アーティスト名ならまだしも曲名となれば大変です。

massiva/logic&mac tipsさんのソートiTunes!という記事でAppleScriptとテキストエディタのGUIを用いてiTunesの曲のアーティスト名のふりがな(アーティストの並べ替え)フィールドを自動で埋めるというスクリプトが紹介されています。ところが、安定して動作させるには待機時間を長くしないといけないのでちょっと遅いのです、これは漢字からひらがな変換にGUIを使っているからなのですが。具体的にはMac全体の処理速度が一瞬低下した場合ふりがなへの変換が終わる前に次の曲に進んでしまったりします。

そこで、オープンソースの形態素解析エンジンMeCabを利用してふりがなを生成する方法に改造することによって高速かつ安定した動作を実現しました。が、人名はことえりのほうが正確かも…

MeCabは前回の記事でインストール済みということで。

スクリプトエディタに以下のスクリプトを入力し、iTunesでふりがなを補完したい曲を選択した状態でスクリプトを実行するとふりがながまだ設定されていない曲のアーティスト名、曲名、アルバム名のふりがなが登録されていきます。

スクリプト

--確認ダイアログ
display dialog "ふりがなをふっていいですか" buttons {"NO", "OK"} default button 2
set button_a to button returned of result
if button_a = "OK" 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

2 Comments

  1. […] そんなところインターネットで色々探していたら AppleScript で解決している方が! chibiegg日誌さんのiTunesの曲に自動でふりがな登録にずばりやりたいことが書いてありました。 […]

  2. 黒生鉄心 より:

    初めまして。
    こちらのスクリプトの改良版を利用させて頂きました、MeCabを利用するという素晴らしい発想のおかげでかなり正確な読みがなが自動登録できるようになりました。
    ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>