はじめに

唄詠調声プラグイン SDK とは

唄詠調声プラグイン SDK は、唄詠の調声プラグインを開発するための資料類一式です。シンプルなサンプルプラグインも同梱してありますので、開発の際の参考になるかと思います。

調声プラグインの概要

唄詠の調声プラグインは、唄詠において文章から合成音声を生成する役割を担うプラグインです。ファイル形式は DLL で、唄詠が配置されているフォルダ配下の Plugins フォルダに配置されます。

SAPI に準拠するための諸処理や音源登録処理などは唄詠フレームワーク側で処理しますので、プラグイン側では、音声合成および、一部の設定 UI のみの処理を行うこととなります。

調声プラグインの開発方法

唄詠の調声プラグインを開発するには、唄詠調声プラグイン SDK に同梱されている「RenderPluginInterface.h」にて宣言されているいくつかの関数を実装することになります。RenderPluginInterface.h は C/C++ 言語用のファイルですが、プラグインはどの言語で開発して下さっても構いません。他の言語で開発する場合は、RenderPluginInterface.h と関数宣言が同じになるようにしていただければよいかと存じます。

RenderPluginInterface.h で宣言されている関数には、以下のようなものがあります。

情報系関数

情報系関数は、唄詠側にプラグインの情報を伝えるための関数群です。

plugin_name() は、プラグインの名前を返すための関数です。この関数で返した名前が、唄詠の音源登録画面の、調声プラグインコンボボックスに記載されることになります。

render_plugin_interface_version() は、プラグインが備えているインターフェース(関数群)のバージョンを返すための関数です。RenderPluginInterface.h をインクルードすれば、インライン関数として実装されているので、別途実装する必要は無く、また、別途実装しないでください。唄詠側は、render_plugin_interface_version() で返されるバージョン番号を見て、互換性のあるプラグインかどうかを判断しています。

設定系関数

設定系関数は、音源やプラグイン自体の設定を行うための関数群です。

主に、唄詠の音源設定 GUI から呼びだされます。

has_settings_window() は、プラグインが設定用 UI を備えているかどうかを返します。設定用 UI があるプラグインの場合、唄詠の音源設定画面で、調声プラグインコンボボックスの隣にある「設定」ボタンが有効になります。

show_settings_window() は、プラグインの設定用 UI をディスプレイに表示し、ユーザーに設定を行ってもらうための関数です。音源固有の設定や、プラグインの設定を行います。ユーザーが「設定」ボタンをクリックしたときに呼びだされます。

are_settings_valid() は、唄詠の音源登録画面で設定中の音源に対し、適切な設定が行われているかどうかを返すための関数です。適切ではないと返せば、唄詠側は音源登録を行いません。

各関数の詳しい仕様については、サンプルプラグインのソースコードを参照して下さい。

合成系関数

合成系関数は、テキストスピーチソフト上で指定された唄詠音源・文章などから、実際の音声データを合成するための関数群です。

主に、唄詠のエンジン DLL から呼びだされます。

set_voice() で、使用すべき音源の情報が渡されます。音源登録時に show_settings_window() で設定した音源のどれかです。

get_wave_format() は、プラグインが合成する音声のフォーマット情報を返します。

set_rate() や set_volume() で、ユーザーに指定された話す速度および音量が伝えられます。これらの値を考慮して音声合成すると良いでしょう。

set_text() で、話すべき文章が指定されます。

get_wave() は、プラグインが合成した音声データ(set_text() で指定された文章に対する音声)を返します。

set_text() と get_wave() が分離されているのには意味があります。set_text() 時に音声合成まで行う仕様にすると、文章全体を一括で合成することとなり、合成に時間がかかる処理系では、発声までに時間を要し、ユーザーを待たせてしまいます。

そこで set_text() と get_wave() を分離し、get_wave() では、set_text() で指定された文章の一部を「少しずつ」合成することを意図しています。プラグインが「少し」合成した音声データを唄詠側で再生しながら、同時に再び get_wave() が呼びだされ、次の「少し」の音声データを合成します。さみだれで音声合成することにより、ユーザーを待たせない音声合成(逐次合成)が可能になります。

上記のような動作になるため、set_text() が 1 回呼び出された後に、複数回の get_wave() が呼びだされることになります。

ただし、唄詠のフレームワークとしては逐次合成となっているものの、テキストスピーチソフトによっては、文章全体の音声合成が完了してから発声するものもあり、実際に逐次合成が実現するかはテキストスピーチソフト次第です。

各関数の詳しい仕様については、サンプルプラグインのソースコードを参照して下さい。

サンプルプラグイン

動作概要

サンプルプラグインは、指定された文章を文字単位で扱い、原音 WAVE を丸ごと出力します。例えば、「からあげ」という文章が指定されたら、指定された音源の「か.wav」「ら.wav」「あ.wav」「げ.wav」を出力します。

従って、単独音のみの対応となり、しかも、ひらがなの文章のみが話せるプラグインとなります。また、oto.ini と各種 WAVE ファイルが同じフォルダに配置されている音源のみの対応となります。

開発環境

サンプルプラグインは、Visual Studio Express 2013 for Windows Desktop で作成しています。

お願い

ニコニコ動画

唄詠調声プラグイン SDK を使った動画をニコニコ動画に投稿したら、

をコンテンツツリーの親に登録して頂けると、励みになります。どうぞよろしくお願いします。

カンパ

Amazon でお買い物をする際は、こちらのリンクにあるサーチボックスから商品を検索して頂きますと、収益の一部がカンパとして還元されます。

頂いたカンパは、唄詠調声プラグイン SDK などを開発するための資金に充当させて頂きます。

その他

データベース

種類別SDK
名称SDK
ソフトウェア名唄詠調声プラグイン SDK
ダウンロードhttp://www2u.biglobe.ne.jp/~shinta/soft/UtaYomi_JPN.html#Download
作者SHINTA
作者 E メール
製品番号SHWI-030-L

ライセンス

唄詠調声プラグイン SDK は唄詠本体とは異なるライセンスを採用しており、以下のいずれかのライセンスが適用されます。

改訂履歴

唄詠調声プラグイン SDKの改訂履歴は以下をご覧ください。

はじめに
唄詠調声プラグイン SDK とは
調声プラグインの概要
調声プラグインの開発方法
情報系関数
設定系関数
合成系関数
サンプルプラグイン
動作概要
開発環境
お願い
ニコニコ動画
カンパ
その他
データベース
ライセンス
改訂履歴

△ページの先頭へ