スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AquesTalkでWAV変換

 今までText To Wav ★でAquesTalkを使う場合はkakasiを使っていたのですが、XPを使っている場合はIMEを使っても漢字をひらがなに変換できるのでkakasiなしでも使えるようにしました。

 それとAquesTalkでのWAVファイルへの直接変換をできるようにしました。両方の機能を使う場合はAquesTalkDa.dllとAquesTalk.dllをPluginsフォルダに入れておいてください。

 まだあまりこの機能はテストしていないので実験として使用してください。

 他にもOptionのDictとIgnoreの適用の仕方を変えて高速化しました。

9.19
 C++のソースコードの一部を書いておきます。自由に使ってください。

9.22
 Text To Wav 2でもAquesTalk使えるようにしておきました。
 辞書機能も少し改良しました。


FILE *fp = fopen(fname, "wb");
if (fp == NULL)
return 1;
byte wavHeader[64] = {0};
DWORD wavTotalBytes = 0;

// vector vTextsには100文字ほどで分割したひらがなが入っている
for (int i = 0; i < vTexts.size(); i++) {
int size;
unsigned char *wavData = AquesTalk_Synthe(vTexts[i].c_str(), speed, &size);
if (wavData == NULL)
continue;
// 最初だけWaveのHeaderを書き込んでおく
if (wavTotalBytes == 0) {
memcpy(wavHeader, wavData, 44);
fwrite(wavHeader, 1, 44, fp);
}
// 波形は+44Byte目から
fwrite(wavData+44, 1, size-44, fp);
wavTotalBytes += size-44;
AquesTalk_FreeWave(wavData);
Sleep(1);
}
// WaveDataのバイト数
memcpy(&wavHeader[40], &wavTotalBytes, 4);
// ファイルサイズ - 8
wavTotalBytes = wavTotalBytes + 44 - 8;
memcpy(&wavHeader[4], &wavTotalBytes, 4);

// FILE*を先頭に戻してHeaderを書き換える
rewind(fp);
fwrite(wavHeader, 1, 44, fp);
fclose(fp);

コメントの投稿

非公開コメント

AquesTalkを認識しない

こんばんは。

ここに書かれている通り、Pluginsフォルダーに入れたのですがAquesTalkを認識しません。

OSはXPを使用しています。何か他にする事がありますか?
前のバージョンで何回か入れ直してやっと認識したんですけど、
最新版はなかなか認識せずお手上げですw

あと、読み上げソフトの使い方ですけど、小説なんてどうでしょう?
http://neu101.seesaa.net/article/93639978.html
辞書機能付ルビ処理と全ルビ削除については、コメント欄に書いておきましたので参考にして下さい。

シェアの音声エンジンを使えばmp3に変換する良いソフトがあるので、フリー版でMP3をそこそこのスピードで変換出来るモノを探していたり。

aさん

こんばんは。

たしかにAquesTalk認識できませんね。
私もお手上げです。
次のバージョンを急いで開発するので、しばらくお待ちください。

今のルビ処理では完全ではなかったんですね。
辞書機能も近いうちに付けてみたいと思います。
リンク
(*´∀`)ノ (´・ω・`)

最近の記事
最近のコメント
ブログ内検索
RSSフィード
カテゴリー
月別アーカイブ
メールフォーム

Name:
Mail:
Title:
Message:

FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。