This Project Has Not Released Any Files
現実を再現した音声会話を実現するには以下の機能を持つ必要がある。
音量 = v - (v-v')/180 * 角度
世界に存在する人の数:m人
一回の音声の合成に必要な処理量:t
重要な項目に音の合成には多くの処理時間が必要となります。
音の合成を実現するために二つの大きな方法が存在します。
一つはサーバで合成を行いクライアントに送信する方法。
二つめは必要な情報をクライアントに送ってクライアントで合成する方法。
各個人に送る音声は以下の計算となる。
3人の場合
|a'| |a + b / l_ab^2 + c / l_ac^2 | |b'| = |a / l_ab^2 + b + c / l_bc^2 | |c'| |a / l_ac^2 + b / l_bc^2 + c |
4人の場合
|a'| |a + b / l_ab^2 + c / l_ac^2 + d / l_ad^2 | |b'| = |a / l_ab^2 + b + c / l_bc^2 + d / l_bd^2 | |c'| |a / l_ac^2 + b / l_bc^2 + c + d / l_cd^2 | |d'| |a / l_ad^2 + b / l_bd^2 + c / l_cd^2 + d |
重要なのは音声の合成手法である。
音声会話はプログラミングしたことないのでそこまで詳しくないが(現在調査中)、
複数音の合成なら一回のループで行うことが可能なのではないかと推測している。
その場合、サーバで行う必要のある処理は、m人分の音合成となる。
つまりO(m)、各個人の合成時間が一人増えるごとに増える場合はO(m)となり合わせてO(m2)となる。
しかし、あまりに多くの人とは同時に会話することはまれであると仮定すると、
同時会話数を制限しても問題が少ないと考えられる。
同時会話数を制限することで、後者のO(m)を定数と考えることができ、全体でもO(m)に押さえることが可能となる。
以上をプロトタイプの作成を通して確認する必要がある。
(現在音声合成を調査中)