ミク語変換API
何ができるの?
URL形式で歌詞を送信すると、変換後の歌詞データをXML形式で返します。
これによりブラウザや特別なライブラリを使用しなくても、自作プログラムにミク語変換の機能を組み込むことが可能になります。
リクエストURL
http://aikelab.net/mikugo/api.cgi
リクエストパラメータ
| パラメータ | 必須 | 省略時 | 説明 |
| sentence | ○ | - | 変換対象のテキストデータ |
| chouon | | Y | 長音の表記を母音に変換する(Y/N) |
| bunsetsu | | N | 文節を区切る(Y/N) |
| romaji | | N | ローマ字変換(Y/N) |
| encoding | | UTF-8 | 出力の文字コード(SHIFT_JIS / EUC-JP / UTF-8) |
簡単なサンプル
送信URL
http://aikelab.net/mikugo/api.cgi?chouon=Y&bunsetsu=Y&encoding=UTF-8&sentence=%E6%AD%8C
%E8%A9%9E%E3%82%92%0A%E9%80%81%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B
受信XML
<?xml version="1.0" encoding="UTF-8" ?>
<result>
かしお
おくうて みる
</result>
サンプルプログラム
Ruby言語によるプログラム例
#!/usr/bin/ruby
require 'cgi'
require 'open-uri'
require 'kconv'
sentense =
"こんな感じに\n" +
"歌詞を書いて\n" +
"改行も含めて\n" +
"URLエンコードします\n"
convert_chouon = 'N' # 長音(ー)を母音に変換 (Y/N)
separate_bunsetsu = 'Y' # 文節を区切る (Y/N)
romaji = 'N' # ローマ字変換 (Y/N)
encoding = 'UTF-8' # 出力の文字コード (SHIFT_JIS / EUC-JP / UTF-8)
# 入力文字列をURLエンコード
esc_str = CGI.escape(Kconv.toutf8(sentense))
# リクエストURLの生成
url = "http://aikelab.net/mikugo/api.cgi?" +
"chouon=" + convert_chouon + "&" +
"bunsetsu=" + separate_bunsetsu + "&" +
"encoding=" + encoding + "&" +
"sentence=" + esc_str
# URLの画面表示
print url + "\n\n"
# リクエスト送信、レスポンス受信、表示
open(url) {|s|
s.each{|line|
print line
}
}
実行結果
home$ ruby apitest.rb
http://aikelab.net/mikugo/api.cgi?chouon=N&bunsetsu=Y&encoding=UTF-8&sentence=%E3%81%93%E3
%82%93%E3%81%AA%E6%84%9F%E3%81%98%E3%81%AB%0A%E6%AD%8C%E8%A9%9E%E3%
82%92%E6%9B%B8%E3%81%84%E3%81%A6%0A%E6%94%B9%E8%A1%8C%E3%82%82%E5%9
0%AB%E3%82%81%E3%81%A6%0AURL%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3
%83%89%E3%81%97%E3%81%BE%E3%81%99%0A
<?xml version="1.0" encoding="UTF-8" ?>
<result>
こんなかんじに
かしお かいて
かいぎょーも ふくめて
ユーアールエルエンコードします
</result>
home$
Ubiquity用のプログラム例
Firefoxで文字列を選択してCtrl-Space → mikugo [enter]で選択した文字列が直接書き換わります。
CmdUtils.CreateCommand({
name: "mikugo",
takes: {"lyrics": noun_arb_text},
preview: function(pblock, lyrics) {
pblock.innerHTML = "ミク語変換: " + lyrics.text;
},
execute: function(lyrics) {
var $ = jQuery;
var url = "http://aikelab.net/mikugo/api.cgi?chouon=Y&bunsetsu=Y&sentence="
var txt = lyrics.html.replace("<br>", "[br]", "ig").replace(/<[^>]+>/g, "");
url = url + encodeURI(txt);
$.get(url, function(response) {
var res = $("result", response).text();
res = res.replace("[br]", "<br>", "g");
CmdUtils.setSelection(res);
}, "xml");
}
})