連携方法
文章の読み上げは、メイン画面から行う以外にも方法があります。
起動オプション
アプリケーション起動時に、読み上げる文章を指定することができます。
MikuMikuSpeech.exe [TEXT] [-i FILENAME] [-o FILENAME] [-s]
| 引数 |
説明 |
| TEXT |
TEXTをもとに音声を作成します。-iオプションを指定している場合は、TEXTは無視されます。 |
| -i FILENAME |
FILENAMEを読み込み、内容をもとに音声を作成します。 |
| -o FILENAME |
作成された音声を、FILENAMEに保存します。 |
| -s |
作成された音声を再生しません。-sオプションを指定しない場合は再生されます。 |
通常読み上げの例
MikuMikuSpeech.exe "家に帰ると妻がかならず死んだふりをしています。"
ファイル読み上げの例
MikuMikuSpeech.exe -i "c:¥in.txt"
音声を保存する例
MikuMikuSpeech.exe -i "c:¥in.txt" -o "c:¥out.wav"
音声を再生せずに保存する例
MikuMikuSpeech.exe -i "c:¥in.txt" -o "c:¥out.wav" -s
ウィンドウメッセージ
win32apiのFindWindow関数でクラスIDを指定すると、SendMessageするのに必要なウィンドウハンドルが得られます。
<MikuMikuSpeech>
<Text>文章</Text>
<ID>ID</ID>
</MikuMikuSpeech>
| 文章 |
読み上げる文章 |
| ID |
IDを指定すると、IDごとに何かできます。たとえばMikuMikuSpeechNCV、MikuMikuSpeechANKは、生IDを送っています。プロファイル解析(本体同梱のprofile.lua)で、IDごとにボイス設定を保存したり、読み上げ時にボイスを変更したりしています。 |
Textタグ、IDタグ以外にも、適当なタグをMikuMikuSpeechタグ内に入れてメッセージを作成すれば、プラグインやスクリプトから参照することができます。
C++の例
HWND hwnd = FindWindow("MikuMikuSpeech", NULL);
std::string text = "<MikuMikuSpech><Text>愛してる</Text></MikuMikuSpech>";
COPYDATASTRUCT cds;
cds.dwData = 0;
cds.lpData = (PVOID)text.c_str();
cds.cbData = text.length() + 1;
SendMessage(hwnd, WM_COPYDATA, (WPARAM)0, (LPARAM)&cds);
C#の例
Int32 hwnd = FindWindow("MikuMikuSpeech", null);
string text = "<MikuMikuSpech><Text>愛してる</Text></MikuMikuSpech>";
byte[] bytes = System.Text.Encoding.Default.GetBytes(text);
Int32 byte_length = bytes.Length;
COPYDATASTRUCT cds;
cds.dwData = 0;
vcds.lpData = text;
cds.cbData = byte_length + 1;
SendMessage(hwnd, WM_COPYDATA, 0, ref cds);
最終更新:2012年05月08日 00:12