おしゃべりカウンタを考える。

こちらのサイトではなく、メインサイトのほうで、

ホームページ読み上げ音声、良いのがないかな、と思っていたのですが…。

VOICEROIDが、かなり良さそうです。Windows上で、テキストを入力して、おしゃべり音声(WAVファイル)を作成する、というものなのですが…。

まさか、Web上でテキストから音声を作成してリアルタイムでしゃべらせる…なんていうアプリは、あってもお金が高いので無理として、共有サーバでも使える、簡単な処理のものがないかな?、と思い、考えてみたのですが…。

簡単に再生音声を切り替えることが出来るものとして、良いものがありました。
それは、「プレイリスト」を使って再生させること。

まず、作ってみたくなったのが、「音声(数字)読み上げカウンタ」。
「ホームページへいらっしゃいませ」と話すと同時に、「あなたは何番目のお客様です」ともしゃべってくれます。

まずはあらかじめ、数字などを合成音声化したもの(音声ファイル)を、用意しておきます。
そして…サーバ上で、プレイリストを作成して、音声ファイルを順に再生させていけばいいのです。

実現する一番良い方法としては、InternetExplorer+WindowsMediaPlayerを使って、WindowsMediaPlayerのプレイリスト(WPLファイル)をCGIでリアルタイムに作成してサーバ内に保管、そのWPLファイル&あらかじめ用意した音声ファイルをIE経由でアクセスすることにより、とりあえず実現できました。
(ただし、この方法はGoogleChromeとかでは実現できないので、他の方法を考えます(^-^;;。)

プレイリスト(WPLファイル)は、SMIL(Synchronized Multimedia Integration Language)という言語で作られています。
このファイルを、アクセスカウンターで作成して、再生ファイル指定をしてあげれば良いわけです。

では、具体的なプレイリストの内容です。

<?wpl version=”1.0″?>←MediaPlayerのプレイリストですよ、ということ?
<smil>←SMILヘッダ
<body>←HTML同様、BODYタグで本文開始
<media src=”voice/before.wav” />←「ホームページへいらっしゃいませ」など、前文
<media src=”voice/thisis.wav” />←「あなたは」「このサイトへは」の文言
<media src=”voice/120000.wav” />←以下、数字データ(※1)。
<media src=”voice/3000.wav” />
<media src=”voice/400.wav” />
<media src=”voice/56.wav” />←以上、数字データ。
<media src=”voice/comed.wav” />←「人のお客様です」文言
<media src=”voice/after.wav” />←「ゆっくりしていってくださいね」など。後文。
<media src=”voice/novoice.wav” />←わざと音声なしに(※2)
</body>
</smil>

(※1)数字データの作成ロジック

  1. 123456という数字を読ませる場合、120000、3000、400、56という風にデータを作成したほうが、そこそこスムースに再生してくれる。
  2. ②数字の先頭の桁から空白でつぶしていく。123456→23456→3456→456→56→6とファイルを検索。
  3. 見つかったファイルがあれば、その数字を0にして、②の再実行
    →ここでは56というファイルが見つかったため、数値を123400として②の再検索。
    123400→23400→3400→400(発見!)
  4. あとは、この繰り返しで、3000、120000(20000+100000)と、ファイルを検索して…
  5. 上の表のようなSMIL作成。

(※2)MediaPlayerで音声を再生する際、音声が再生し終わると、プレーヤーの「再生」ボタンでは再度再生が出来ない。ここでわざと「再生ファイルなし」を指定すると、再度再生できるようになる。

まあ、ここで使用している音声データはwavなのですが(^^;。もちろん、MP3でも良いですね。
(VOICEROIDの保存音声はWAVのみなので、のまま使用しています)
あとは、media src= で指定するファイルは、さらにプレイリストファイルを呼び出しても構いません。
(私のサイトでも実際は、2重、3重にプレイリストを呼び出して再生しています)

※あとで分かったのですが、wplよりも単純に、MP3リスト(m3u)でプレイリストを作成したほうが、互換性もあって簡単だと思います。
ただし、リアルタイム音声再生(ページを開いたと同時に音声再生)を行うのは、InternetExplorerの環境でしか行う事が出来ません。Windows環境なら、Windows
MediaPlayerも入っているだろうということで、MediaPlayerのファイルリスト(wpl)を使用しています。

Prev Next

Comment

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください