Rubyで漢字を読み上げる

  • 5
    いいね
  • 0
    コメント

翻車魚

ウッ....(よめない)

ちなみに答えはマンボウです

こういったことは割とよくあるし、Railsで開発している身としてはユーザが自分の名前を入力した時などにオートコンプリートで読み仮名を自動入力させてあげたいものです.

なので漢字を読み上げてくれるいいgemはないかなと漁っていたのですが、あんまりないので作ってみようと思い立ちました.

成果物

ソースはこちらから

前準備

yahoo japanのAPIを使用しているため、yahoo japanのapplication_idなるものが必要です.

gemのreadmeでも紹介してますが、こちらから簡単に取得できます.

日本語なので気持ち的にも楽

KanjiReader

client = KanjiReader::Client.new(YOUR_APPLICATION_ID)
client.perform("翻車魚")
client.kanji #=> "翻車魚"
client.roman #=> "manbou"
client.hiragana #=> 'まんぼう'
client.katakana #=> 'マンボウ'

といった感じで引数に漢字を渡せば、

  • ひらがな
  • かたかな
  • ローマ字

を取得できます。便利!!!

漢字以外のものを引数に入れたらどうなるか

漢字 + ひらがな + かたかな + 絵文字 ❌

client.perform("今夜は翻車魚とディナー❤️")
client.kanji #=> ""
client.roman #=> ""
client.hiragana #=> ''
client.katakana #=> ''

漢字 + ひらがな + かたかな ❌

client.perform("今夜は翻車魚とディナー")
client.kanji #=> ""
client.roman #=> ""
client.hiragana #=> ''
client.katakana #=> ''

漢字 + ひらがな ⭕️

client.perform("今夜は翻車魚")
client.kanji #=> "今夜は翻車魚"
client.roman #=> "konyahamanbou"
client.hiragana #=> 'こんやはまんぼう'
client.katakana #=> 'コンヤハマンボウ'

漢字 + ひらがな(文章) 🔺

client.perform("今夜は翻車魚とご飯を食べて朝まで飲み明かす")
client.kanji #=> "今夜は翻車魚とご飯ご飯を食べ食べて朝まで飲み明かす飲み明かす"
client.roman #=> "konyahamanboutogohangohanwotabetabeteasamadenomiakasunomiakasu"
client.hiragana #=> 'こんやはまんぼうとごはんごはんをたべたべてあさまでのみあかすのみあかす'
client.katakana #=> 'コンヤハマンボウトゴハンゴハンヲタベタベテアサマデノミアカスノミアカス'