ブログトップ 記事一覧 ログイン 無料ブログ開設

試験運用中なLinux備忘録 RSSフィード

2010/06/25 (Fri)

Wine上のSofTalkの動作について(2010/6/25現在)

日本語の文章を読み上げるWindowsアプリケーションSofTalk(cncc.hp.infoseek.co.jp/http://www35.atwiki.jp/softalk/)*1Wine上の動作についてを扱う。

(2010/9/9)「ゆっくり」というのは「ゆっくり」を検索エンジンで画像検索したときに出る「ゆっくり霊夢」*2と呼ばれる黒髪に赤いリボンの生首(?)キャラクター*3で、このキャラクターの声としてSofTalkの音声合成ライブラリの声色(声の種類)の1つ「女性1」を用いる*4文化が一部であることに関係する。

VB.NET版(1.77)

VB.NET言語で作成されたアプリケーションは一般的にはMono/.NETアセンブリなのでOSを問わずにMonoもしくはMicrosoftの.NET Frameworkで動作するが、残念なことに音声合成ライブラリの部分がMono/.NETアセンブリではなくWin32のDLLとなっており、OS依存なアプリケーションとなっている。

そこで、WineにWindows版Monoを入れて試すことになった。

winetricksで「mono26」をインストールしたのだが、実行してみると、プログラムは動作しており落ちていないがウィンドウが表示されない状態となってしまい、うまくいかなかった(強制的に止めるしかない)。「mono24」で2.4系も試したが同様だった。

作者はサイトの掲示板(記事No:1315)で

以前はVB6.0にて開発を行っていたのですが、Vista以降のOSでは動作が保障されないため、現在ではVB.NETで開発を行っています。

VB.NET 版のみが更新されるのはそのためです。

とコメントしており、新しいバージョンはVB.NET版でしか出ないようなので、こちらでうまく動作しないというのは残念。

VB6版(1.56)

winetricksで「vb6run」を入れたところ、起動はしたが、環境設定のダイアログが文字化けした。

IPAモナーフォントがインストールされている状態で

http://kakurasan.ehoh.net/summary/ui.font.wine.html

font-link-ipamona.regを適用しても一部に文字化けが残ってしまったため、色々と調べたところ、Visual Basic 6を作成して作られた日本語アプリケーションはvb6jp.dllというファイルがないと文字化けすることがあるということが分かった。

http://download.tsuru.syuriken.jp/system/vb6jp_s/

にあるものは実行形式として配布されているが、7z形式の自己展開書庫なので、実行してもよいが

$ 7z x [vb6jp_s_v3.exeの場所]

として7zコマンドにより展開することはできる。その中のvb6jp.dll${WINEPREFIX}/dosdevices/c:/windows/system32/以下にコピーもしくは移動することで文字化けが解消する。

f:id:kakurasan:20100625221415p:image

一方、winetricksの「vb6run」の代わりに

http://www.vector.co.jp/soft/win95/util/se159095.html

にあるランタイムを試してみたところ「コンポーネント 'MSCOMCTL.OCX'、またはその依存関係のひとつが適切に登録されていません。ファイルが存在しないか、あるいは不正です。」となって起動しなかったが、winetricksで「comctl32.ocx」を入れるとOKだった。こちらのランタイムはvb6jp.dllを含んでおり、追加で入れる必要はない。このv6.exeは自己展開書庫だが

$ lha x [v6.exeの場所]

としてlhaコマンドで展開することもでき、(自己展開書庫を実行した場合も含め)中のsetup.exeWineで実行することになる。

VB6版の読み上げ動作について

カタカナが読み上げられなかったり、行の途中で読み上げが切れることがあったり*5、と気になるところはあるが、カタカナの代わりに平仮名を用いつつ(読み間違えるところも平仮名にするとよいかも)、まめに改行するようにすると使える。

再生ボタンが押されていない状態で録音ボタンを押して出力ファイルを指定後に再生ボタンを押し、行を送っていって停止ボタンを押すと、WAVEファイルへの書き出しも正しく行えた。速度や音量の調整にも問題はなかった。

ただ、再生ボタンが押されていないときに停止ボタンを押すと入力された内容が消える点には気をつける必要がありそう。

なお、(Wineは直接関係ないが)読み上げが正常なところでも、例えば

光化学すもっぐ注意報が
発令されました。

と読ませたいとき

こーかがくすもっぐ注意報が
発令され魔した。

と書いたほうが自然に聞こえる(一方で「解除され魔した」よりは「解除されました」のほうが良い)など、書き方を変えるとしゃべり方が変わったりすることもあるようだ。

f:id:kakurasan:20100625221414p:image

(2010/6/27)このソフトウェアが用いている音声合成ライブラリ(アクエスト社のAquesTalk)の独自の記法(www.a-quest.com/download/manual/siyo_onseikigou.pdf による)を用いることで、(SofTalkの中でも)アクセントなどを細かく指定して結構自然なしゃべり方をさせることもできるようだ。ニコニコ動画にも、nm5361877などにこの記法の実行例がある。

きょ'うわ/とても;あつ'いです。

こーかがくすもっぐちゅうい'ほうが
はつれいされま'した。

カタカナについては、設定ダイアログの「その他」で「文章を音声記号として読み上げる(無変換)」を選択してAquesTalkの記法をそのまま渡すモードにすると読み上げてくれるようだ。ただしカタカナは特別な意味で使われることがあり

これわ/て'すとです。

これわ/テ'ストです。

は異なる(「ス」の自動無声化を無効にする)。

これわ/テ'_ストです。

と書けば平仮名で書いたのと同じだが、基本的にはカタカナではなく平仮名で書くことになる。

関連記事:

関連URL:

使用したバージョン:

  • Wine 1.2-rc4
  • SofTalk 1.56,1.77
  • Mono(Win32) 2.4.2.3, 2.6.4

*1:一部で「ゆっくり(の声)」と呼ばれているもの

*2:モデルになった「霊夢」というキャラは別に存在するが、「ゆっくりしていってね!!!」のセリフの付いた生首バージョンがこのように呼ばれることがある・「ゆっくり霊夢」は正式な名称ではなく、後述の「ゆっくり魔理沙」についても同様

*3:帽子をかぶっているキャラとセットになっており、こちらは「ゆっくり魔理沙」と呼ばれているが、単に「ゆっくり」と呼ぶ場合は「ゆっくり霊夢」を指すことが多い

*4:この際には本記事の最後の追記で扱ったような記法によるアクセント調整などはわざと行わずに棒読みにさせる傾向がある

*5:端末には「err:alsa:wine_snd_pcm_recover underrun occurred」と出るがHKEY_CURRENT_USER\Software\Wine\ALSA Driver以下のレジストリ設定で「"DevicePCM1"="hw:0"」と「"UseDirectHW"="y"」を付けてもダメだった/ALSAの代わりにOSSを用いても動作は同様

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/kakurasan/20100625/p1
カスタム検索

カテゴリ「メールマガジン」を除いた本ウェブログ上の文章は、クリエイティブ・コモンズ・ライセンス(表示-非営利-継承 2.1 日本)の下でライセンスされています(引用・転載されたものを除く)。
Creative Commons License

本ウェブログの表示につきましては、横幅1,000ピクセル以上を推奨します。
はじめに | お知らせ | 最新の記事 | 記事一覧 | プライバシーポリシー | 別館トップ | まとめドキュメント | ご意見・ご要望