2005年2月4日金曜日

XSL



chaoneの実体はXSLらしい。。。ということで



http://www.gingerall.com/charlie/ga/xml/l_lib.xml?s=org

とかが使えるsuikyoさんとかぼしゅ~(ぉぃ


いやC++でXSL使えればいいんだけどね。


たぶん、choneライブラリにさっくりなげて、品詞分解された結果をXML風にだして、


それをXSLにかませて、ちゃっちゃとアクセント情報とかを付与して、


できあがったら、それをDOMでよんで、




  • 品詞ID,

  • 活用形ID,

  • 音素,

  • 所属アクセント句が疑問系か?,

  • アクセント型,

  • 文章中で何番目のmoraか,

  • 呼気段落で何番目のmoraか,

  • アクセント句で何番目のmoraか,

  • mora中何番目の音素か

  • 各パラメータ(VOICE,PITCHタグの影響を時系列に展開)


に展開するプログラムを書ければ、gtalk_TNGの山はこえるね。


そこまで、展開されたら、あとは音響パラメータをYes/Noクイズにこたえてひろってきて


よーわからんけど、HMM合成のルーチンに投げるだけで音になりそう。


本家gtalkは音を全部生成するまでしゃべらんから、以下のようにパイプライン化するのが理想かな?




パイプライン化を簡単にするために、言語処理オブジェクトのインターフェイス
としては
setInputData();
fetchData();
の二つのメッソッドを持ち、以下のように動くと素敵だとおもいます。
言語.setInputData(text);//発話すべきテキストをすべて入れる
while(1){
extPhonome=言語.fetchData();//n番目の音素に関する全データを取得(上の箇条書きしてるの)

音声.setData(extPhnome);
sound=音声.fetchData()//ここでデータ数がゼロの場合を許容する
            //(最初の2回はトライグラム分のデータが溜まってないので作りようがない)
//サウンドバッファに書き込む
}








ここまでくると、ソースをぱちってロ技研オリジナルのをつくってるようなもんだな。orz


ということでgtalk改良計画が始動した気分。


個人的な目標は、HMM音声合成の自由に表現を後付けできるというメリットをいかして、


掛け合い漫才をデスクトップででやらせる!


話者適応で、いろんな発話モデルをさくさくつくって、キャラの量産に耐える。


無論、掛け合い漫才だから、複数人の音声をかぶらせて発話するなんて事も必要だし


立体音響も必要になるかもしれない。


でもそこがおもしろいんじゃないかな。


吹き出しテキストの音声じゃタイミングとか、感情を表現するにはすこしだけ弱い、


そのテキストを補完するための音声。そんな使い方がいいかなと思う今日この頃。


#ちなみに、テキストだけより冗長でも音声もあったがいいとおもったのは


#IRCの音声読み上げを見てから、文章を読む負荷が音声があることで軽減されたきがする


#無論バックグラウンドnoticeって側面もあるけど





0 件のコメント:

コメントを投稿