volumio + LCDの曲名の日本語文字化け対策(案)
この際、オープンソースは有効に活用いたしましょう。
RaspberryPi + volumio + LCD で曲名などを表示してみましたが、日本語はLCDが対応していないために文字化けしてしまいます。
そこで「KAKASI」という日本語(漢字かな) -> ローマ字(カタカナ)変換プログラムを活用しましょう。
このプログラムは、私個人としても2000年頃に社内電話番号のWEB検索システムで全文検索のnamazuと共に利用させて頂いたことがありました。
どうして社内電話番号検索で日本語をローマ字やカタカナに変換する必要があったのかと言いますと、例えば「斉藤」さんで検索をすると、「齋藤」、「齊藤」、「斎藤」と漢字が違っていると全文検索ではヒットしないんです。
これを、一度カタカナに変換してデータベースを構築しておくことで「サイトウ」さんは必ずヒットするようになります。 ワタナベさんも同様です。
当時、KAKASIの辞書が貧弱で、全国の苗字・名前の読みかた辞書をあさって辞書登録し、ChaSenという日本語要素解析->分かち書きプログラムも使って実用的な検索システムを構築するのに苦労した記憶があります。 それだけ仕事が暇だったんです。
んま、そんな私の過去の自慢話はどうでもいいですね(笑
早速、本題に入ります。
まず、KAKASIをインストールします。 SSHでログインして、
apt-get update
apt-get install kakasi
次に、lcd_ctrl.pyを編集します。 96行目あたり
# Display Control
def disp(self):
# mpc command Send and Receive
st = commands.getoutput('mpc')
と「mpcコマンド」を打っている部分にKAKASIを挿入するには
st = commands.getoutput('mpc | kakasi -Ja -Ha -Ka -Ea -s -i utf-8 -o utf-8')
とします。
それだけです。
<< ローマ字に変換されたアーティスト名 (ID3タグは日本語のまま) >>
いかがでしょうか。 意外と簡単でしたね。
ちなみに、通常の文章とは違う読ませ方をしている「アーティスト名」や「曲名」の正しいローマ字変換は、さすがに無理です。 許してあげてください。
■本日の結論
やっぱりRaspberryPiって楽しい。 オープンソースって素晴らしい。
ごらんの様に私は有用なコードは一切書いておりません。 KAKASIを開発・メンテナンスされてきた方々、KAKASI辞書を整備されてきた方々に厚く御礼申し上げます。
追記 ==========================
日本語をカタカタで表示するには
st = commands.getoutput('mpc | kakasi -Jk -Hk -Kk -Ea -s -i utf-8 -o sjis')
とすればOKとのことです。
kenichih さん 情報ありがとうございます。
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« RaspberryPi + Volumio + LCDを実現したプログラム説明 | トップページ | RaspberryPi + Volumioに有機ELディスプレイを接続する方法 »
「Raspberry Pi」カテゴリの記事
- MotionEyeと余っているラズパイで監視カメラ(2024.11.21)
- 秋の夜長にはRaspberryPi5 RT-linux セルフビルド(2024.10.13)
- 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル(2024.10.10)
- RaspberryPi 5 の公式OSは32bit版でも64bit?(2024.10.09)
- 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド (2024.10.07)
コメント
« RaspberryPi + Volumio + LCDを実現したプログラム説明 | トップページ | RaspberryPi + Volumioに有機ELディスプレイを接続する方法 »
たかじん様
64GBのSDで空き容量をマウントできました。
ローマ字表示もできました。
嬉しい!
これから、すこしづつ、LINUXも覚えます。
これからも、よろしくお願いいたします。
投稿: イワン | 2014年10月15日 (水) 17時47分
イワンさん
すばらしい上達ぐいあいですね。 こちらこそよろしくお願いいたします。
おそらくDOSコマンドよりUNIX系のコマンドの方が融通が利くように出来ていると思います。
と言っている私も、そんなに詳しくはありません。 いつもネットで調べながら作業しています。
投稿: たかじん | 2014年10月16日 (木) 21時10分
本当にありがとうごさいます。
ずっとkakasiを使いたいと思ってましたが適えられずにいたところ、こちらの方法で希望が実現できて大変嬉しいです。
これからもよろしくお願いします。
投稿: パンダ | 2014年10月18日 (土) 21時54分
パンダさん
kakasiは、使い方にちょっとしたコツがいりますね。
でも使い方次第で大変有用なソフトと思います。
ローマ字に変換後、音声合成をさせるような応用をされている方もいらっしゃるようです。
投稿: たかじん | 2014年10月19日 (日) 08時42分
先日、SaberBerry+の領布をしていただきました。ありがとうございます。
OLEDもI2Cポートにとりつけて曲名表示を楽しんでおります。
このOLED、カタカナもはいっていてJISx201のコードにマップ
されているっぽいのでkakasiでJISx201でSJIS設定してあげれば
カタカナがでるんじゃないかなと思ってやってみたら出ました。
st = commands.getoutput('mpc | kakasi -Jk -Hk -Kk -Ea -s -i utf-8 -o sjis')
投稿: kenichih | 2015年3月31日 (火) 22時26分
kenichihさん
素晴らしい情報ありがとうございます。 簡単にカタカナにできるとは思っていませんでした。
記事のほうにも追記したいと思います。
投稿: たかじん | 2015年4月 4日 (土) 14時03分