#どどんとふ + TTS(Text To Speech)という妄想 #これでいいですか竹流さん
このまとめは?
ふとしたきっかけで思いついた設計(妄想)を連投したので。
それを どどんとふ 開発者の @torgtaitai さんへ送るための。
ものっそい個人的なまとめです。
どどんとふ とは
いわゆるTRPGのオンラインセッション支援サイト(サーバアプリケーション)です。
詳しくは こちら を。
TTS(Text To Speech) とは
いわゆるひとつの音声読み上げというものです。
ニコ生とかでいうところの softalk とか
棒読みちゃんとかみたいな「コメントの読み上げ」のことです。
前置きなげーよ
では、以下の連投をご覧ください。
呼び出しを受けたら、受け取ったメッセージ内容から音声読み上げのバイナリファイル(*.wav)を生成するWEBIFを新たに実装する。(※)
2014-02-28 11:54:56テキストから音声読み上げのバイナリファイル(*.wav)を生成する部分に関しては、昔とった杵柄である AquesTalkライブラリ(いわゆる「ゆっくりボイス」)を使えば良くて。たぶんこれは組めそう。 問題は、どどんとふ仕様のWEBIFを新規で組めるか?ってところだ。
2014-02-28 11:56:28どどんとふには標準で(どういう実装かわからんが)ダイスを転がした音を鳴らすことができる。 たぶん、音声ファイルをどうにか用意できれば。画面上で再生させることも可能なのではないかと予想。(※)
2014-02-28 11:57:41実際に、ただ単純に音声ファイルを用意すればそれでいいのかってわけじゃなくて。 たぶん、Flexフロントエンドもいじらないとならないよーな気がする。 そのへんはまったく詳しくないのであまり自身はない。
2014-02-28 11:58:44音声ファイルの再生終了をトリガーとして、音声バイナリファイルの削除をさせる。 これはFlexフロントエンドから再生終了のトリガーが、呼び出しを受けたら音声ファイルバイナリ削除を行うWEBIFへ通知するという形になるといいのだろうか。(※)
2014-02-28 12:02:26問題は。音声ファイルの再生終了をどどんとふサーバのどのレイヤー(Flexフロントエンドなのか、WEBIFなのか)で取得、通知できるのかがさっぱりわかっていない。もしかしたら、音声ファイルを生成する段階で、再生時間を検知する必要があるのやもしれない。微妙。
2014-02-28 12:04:38前後が逆になるけど。概要をいうと既存のWEBIFのやりとりを新規にいくつか増やして。 オプションプラグイン(?)としての音声読み上げ(いわゆるニコ生の棒読みちゃん)みたいなものをどどんとふにものっけようというものだ。(※)
2014-02-28 12:06:42ニコ生などでよくあるコメントの読み上げはクライアントサイドでの実装だが、どどんとふの場合は。 そもそものコンセプトデザインとして「オールインワン」という設計思想があるので。 やはり、クライアントサイドではなくサーバサイドで実装を完結する必要があるのだろう。たぶん。
2014-02-28 12:08:00大まかな設計(ほんと、ざっくりと)だが。 1.チャットWEBIFからメッセージ取得 2.音声ファイル生成WEBIFがコールを受けて、音声ファイルを生成 3.Flexフロントエンドで音声ファイルを再生 >>
2014-02-28 12:09:57>> 4.Flexフロントエンド(?)から、音声ファイルの再生終了トリガーを取得 5.再生終了トリガーで、音声ファイル削除WEBIFをコール。音声ファイルを削除。 だいたいこんな感じ。
2014-02-28 12:11:22課題。 a.)どどんとふ仕様のWEBIFを新規に組めるのか b.)Flexフロントエンドを新規追加できんのか c.)Flexフロントエンドで音声再生できんのか d.)Flexフロントエンドで再生終了トリガー取得できんのか >>
2014-02-28 12:13:54>> e.)サーバサイドでの音声読み上げ(テキスト>音声ファイル>再生>消去)の処理 これを、どどんとふの部屋毎レベルで実装すると負荷がどのぐらいのものになるのか検討もつかない。 ぶっちゃけ、実働に耐えるレベルの負荷に収まるのか(収められるのか)がわからない。
2014-02-28 12:16:07とりま。どどんとふの該当箇所周辺のソースコードと、Flexのリファレンスとかを読みながら。 よちよち歩きで久方ぶりの AquesTalk による音声読み上げ(いわゆる「ゆっくり実況」)のサーバサイド実装を勉強しましょうねー。というか、この設計でそもそもいけるのでせうか。
2014-02-28 12:18:05しかし。もし、仮にこれが実装できたとすると。 どどんとふ+ニコ生?あるいはどどんとふ+ニコ動?による投稿動画作成が 「サーバサイドでデフォルトで、コメントのゆっくり読み上げがつく」!!!!という大盤振る舞いになりそうな予感。
2014-02-28 12:19:29ツッコミなど
@saronpasu 拝見してましたが、実装方法はともかくとして「音声データ転送量」と「音声再生が間に合わない(次のメッセージが来た場合)の処理」も課題になりそうですな。
2014-02-28 12:19:06おそらくサーバー実装では無く、クライアントからsoftalk(もしくは棒読みちゃん)のapi(?)をcallしちゃった方が良いんだろうなぁという想像はしたことがある。Flashでできるかどうかは全くわからぬw
2014-02-28 12:21:24@kumakaba コスパを考えると、クライアントサイド実装ていうのが現実的なんだと思います。ただ、「サーバサイドでオールインワン」というのがどどんとふのコンセプトというか設計思想にあったよーな話をどこかで聞いたような気がします。 なんで、あえてのサーバサイドなんですよね。
2014-02-28 12:23:52