一覧へ   前へ<<  >>次へ


音声合成エンジン (2016年01月24日更新)

まとめ

下のメモはごちゃごちゃとしていて見にくいので、ここにやり方をまとめたいと思います。


======================

未記載。準備中。。。

======================


PCにしゃべらせる
数年前、VB6.0に参照設定やらコンポーネントの追加の中に、どのような機能があるのか、覗き込んでいたところ、人の唇のような形の奇妙なコントロールを発見し、これを配置、使い方をネット検索して試したところ、アルファベットで記載した文字をロボットのような音声でしゃべらせることができた。

これを久しぶりに使ってみようと試みたところ、このコントロールが見つからない。

掲示板を覗いたりしていると、これはどうやらWindows2000に付属していた機能をVB6.0から利用していたようで、今使っているノートPCはOSがWindows7なので使えないらしい。

普段ならここで諦めるのですが、なくなるには惜しい機能、どうしてもしゃべらせてみたい、と、ねばって検索をしてみると、Microsoftのサイトで音声合成エンジンなるものがダウンロードできることが分りました。

TTS ( Text To Speech )とか、Sapi(Speech Application Programming Interface)とか、音声合成エンジンとか、おんなじ意味なのか、異なる定義なのか、よく理解できていませんが、めんどくさいので、この辺の理解はすっとばして、とにかくPCに喋らせる方法を忘れないように記載しておきます。
TTS Engineのダウンロード

(以下はWindows7を使って試しています。7以降のOSはダウンロードの必要はないのかも知れません。)


マイクロソフトのサイトは下記。ここで各言語のTTS Engineをダウンロードできるらしい。
SRは音声認識、TTSは音声合成。

Microsoft Speech Platform - Runtime Languages (Version 11)

https://www.microsoft.com/en-us/download/details.aspx?id=27224


しかし、下記のサイトからフリーソフトをダウンロードすると、より簡単にMicrosoft社のサイトからダウンロード・インストールを自動で行ってくれることを後に知りました。

Microsoft Speech Platform 簡単インストーラー Ver.2.2

http://mahoro-ba.net/e1542.html

このソフトを起動してみたところ、先にMicrosoftサイトからダウンロードしたものが認識されていたので、どちらもうまくいっていたことが分りました。

とりあえず、日本語、英語、フランス語、韓国語、中国語をすべてダウンロード。

実際にしゃべらせるには・・・
ExcelのVBAを使う方法が、下記のサイトに説明が書いてあります。

http://snow-white.cocolog-nifty.com/first/2010/07/excel-2010-b6f0.html

簡単に概要を記載しておくと、

・VBAエディターの画面にて、「ツール」→「参照設定」を開き、

 「Microsoft Speech Object Library」の「場所」が C:\Program Files\Common Files\Microsoft Shared\Speech\Platform\v10.1\mssps.dll にチェックを入れる

  (これでVBAからこの機能を利用できるようにする。アドインのようなもの。)

・で、マクロを記載。そのまま記載すると著作権に引っ掛かりそうなので、リンク先を参考に最低限のコマンドだけ載せておきます。


Public Sub test()
Dim sv As SpeechLib.SpVoice
Set sv = New SpeechLib.SpVoice
sv.Speak "こんにちは。"
Set sv = Nothing
End Sub

リンク先にはもう少し長い例が載っています。そこでは、選択したセルに記載された単語を日本語対応のエンジンを探して話させるようになっていました。

Excelのセルに中国語や英語を記載して、そこを選択しておいてマクロを実行すると、しゃべるのですが、言語を変えてしゃべらせることもできました。

日本語の発音はロボット風で、英語の発音は流暢でした。
(やっぱり、本場だから?!)

VB6.0に置き換え

VBAのプログラムをVB6.0に応用してみましたが、特に問題なく使用可能でした。
WAVファイルに変換

ここまでくると、このおしゃべり音声をWAVファイルにできないのか?と思い、ググってみると、こんなサイトがありました。

Windowsバッチで,手軽に日本語テキストを自動読み上げ(Text To Speech)する方法 …WSHでSAPIやSpeech.SpVoiceを使う音声合成の手順とサンプルコード


http://language-and-engineering.hatenablog.jp/entry/20150202/JapaneseTextToSpeechProgramming


以下は上記サイトからの抜粋です。


下記をhoge2.jsとして保存:

var tts = WScript.CreateObject("SAPI.SpVoice");
var stream = WScript.CreateObject("SAPI.SpFileStream");

// ストリームを開いて
stream.open( "fuga.wav", 3 );

tts.AudioOutputStream = stream;

// しゃべる(WAVに書き込みされる)
tts.Speak("Hello world! Konnichiwa!");
tts.Speak("I think that that that that that boy wrote is wrong."); // 英語の早口言葉

// ストリームを閉じる
stream.close();

WEBで

HTMLにタグを埋め込んで、ブラウザを介してしゃべらせることもできるのか・・・?!
これは試してません。リンクだけ。

パソコンにいろいろな国の言葉をしゃべらせる

http://denspe.blog84.fc2.com/blog-entry-105.html

この方のサイトのサンプルリンク(1個だけ…m(__)m)

アメリカ英語版「不思議の国のアリス(冒頭部)」


Androidで・・・

じゃ、スマホは?と調べてみると、KDDIの開発したものがあるとのこと。

http://www.kddilabs.jp/products/audio/n2tts/product.html


↓ここに詳しく。
http://foonyan.sakura.ne.jp/wisteriahill/website/jqm_template15/


興味は湧きますが、ここまで突っ込んでやっている時間はないので、今回はこの辺でやめておきます。