数字の日本語読み部分
google-code-prettify のテストを兼ねて、MIKU_TALK Ver. 0.1.8 の形態素解析パートで実装した「数字読み」の ActionScript 3.0 のコードを貼ります。
reading (読み)に数字が入っておりますので、各桁の数字(reading.charAt(i))を「いち」~「きゅう」と発音し(pronounce)、桁数(currentFigure)に対応した読み「おく」~「じゅう」の発音 (pronounce) をしています。
private function
pronounce_number(reading:String):String
{
var pronounce:String = "";
var currentFigure:Number = reading.length;
var pronounceFigure:Number = 1;
if( currentFigure > 17 ) return "よめない";
for(var i:Number=0; i<reading.length;
i++,currentFigure--) {
if(reading.charAt(i) == "0") {
if( reading.length == 1 ) pronounce += "ぜろ";
}
if(reading.charAt(i) == "1") {
if(currentFigure % 4 == 1)
pronounce += "いち";
if(currentFigure % 4 == 0 && 4 < currentFigure)
pronounce += "いっ";
}
if(reading.charAt(i) == "2") pronounce += "に";
if(reading.charAt(i) == "3") pronounce += "さん";
if(reading.charAt(i) == "4") pronounce += "よん";
if(reading.charAt(i) == "5") pronounce += "ご";
if(reading.charAt(i) == "6") pronounce += "ろく";
if(reading.charAt(i) == "7") pronounce += "しち";
if(reading.charAt(i) == "8") pronounce += "はち";
if(reading.charAt(i) == "9") pronounce += "きゅう";
if( reading.charAt(i) != "0" ) {
if( currentFigure % 4 == 2 ) {
pronounce += "じゅう";
pronounceFigure = 1;
}
if( currentFigure % 4 == 3 ) {
pronounce += "ひゃく";
pronounceFigure = 1;
}
if( currentFigure % 4 == 0 ) {
pronounce += "せん";
pronounceFigure = 1;
}
}
if(currentFigure == 5 && pronounceFigure == 1) {
pronounce += "まん";
pronounceFigure = 0;
}
if(currentFigure == 9 && pronounceFigure == 1) {
pronounce += "おく";
pronounceFigure = 0;
}
if(currentFigure == 13 && pronounceFigure == 1) {
pronounce += "ちょう";
pronounceFigure = 0;
}
}
return pronounce;
}
ソースコードがいまいち洗練されていないのは、これが ActionScript の処女作で、言語仕様がよくわかっていないためです。やっぱり参考書籍(以下参照)を買わなきゃダメかな。
| 固定リンク
「初音ミク」カテゴリの記事
- MMDの物理演算エンジン搭載テストの紹介(2009.06.07)
- VocaSim(2009.05.17)
- VSQのファイル仕様(推定)(2009.04.18)
- MIKU_TALK 修復(2008.10.22)
- 商標登録第5157451号(2008.10.13)


コメント