Microsoft Speech Platform 11
2011年09月04日(日)00時51分
バージョン11
無料で使用できる日本語音声合成エンジンが含まれる Microsoft Speech Platform がバージョンアップして 11 となっていました。
「10.3」ではなく、まさかの「11」です(これによって少々面倒な事態が起こり得るのですがその話は後述)。
2011年09月現在の URL は以下の通りです。
ランタイム → 「http://www.microsoft.com/download/en/details.aspx?id=27225」。
各言語パック → 「http://www.microsoft.com/download/en/details.aspx?id=27224」。
SDK(開発者向け) → 「http://www.microsoft.com/download/en/details.aspx?id=27226」。
WinXP 非サポート
前バージョン(10.2)に引き続き、WinXP はサポート外です。
ただし、これも前バージョンと同じく、「動くという保証はしません」というだけの話のようで、実際に試した限りではインストール可能ですし、使えています。
なお、開発者用である SDK は WinXP もサポート対象であるようです(一部使えない機能があるということですが)。
つまり、公式には「開発は WinXP でも OK ですが、できたソフトは Vista 以降で使ってください」ということになります(多分)。
何が変わったのか
リリースノート(英語)をがんばって読んでみた限りでは、どうも「音声認識」に関する開発者向けの機能および開発ツールの強化がメインのように読めます。
「音声合成」の利用者(非開発者)にとって意味のありそうなものとしては、Microsoft Haruka が PRON(読み仮名)タグに対応するようになっていました(後述)。
ただし、Microsoft Haruka のインストーラのサイズは、むしろ前回よりもさらに(わずかですが)減っているくらいですので、語彙の大幅増強であるとか音質の向上といった要素はないのではないかと思われます。
【追記:2011/09/27】音質が「16kHz 16bit」に向上しているようです(参考「Microsoft Speech Platform の音質」)。
アンインストールしてから
バージョンアップは旧バージョンをアンインストールしてから行います(旧バージョンをアンインストールせずにインストールを開始すると警告メッセージが出て中断されます)。
そして、前バージョン(10.2)では、言語パックに関しては前々バージョン(10.1)のものをそのまま使用できましたが、今回は言語パックもバージョンアップさせる必要があります。
当然、こちらも旧バージョンのアンインストールが必要で、せずに開始すると中断します。
つまり、新旧バージョンの共存はできない、ということになります。
「メジャーバージョンアップ」という問題
今回のバージョンは、「10.3」ではなく、「11」へとメジャー番号が上がっています。
これの何が問題になるのかといいますと、関連するレジストリ値がすべて変更になる、という点です。
例えば、C言語で Microsoft Speech Platform が使用できる話者の一覧を取得する際、関数に「HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech Server\\v10.0\\Voices」と、情報の存在するレジストリ位置を指定することになるのですが、御覧の通り「v10.0」とはっきりバージョン番号が含まれています。
これがマイナーバージョンの変化であれば、「10.1」でも「10.2」でもレジストリ値は「v10.0」で変わりなかったため、そのままでよかったのですが、今回はソースコードを書き換えて対応しなければなりません。
当ブログでも「Microsoft Speech Platform を SAPI5 として使う」という記事を書いていますが、ここで書き換えるレジストリ値にもバージョン番号を示す文字列は散見されます。
頭が痛いのは、今回書き換えて対応したとしても、また次回のバージョンアップ時には対応できなくなり、そして、上記のとおり新旧バージョンは共存できないということです。
最近、バージョン番号をどんどん繰り上げていくのが世の流行のようなのですが、こういう問題の出るものに関しては、よほど機能に大きな変更があった時以外には避けてもらえないかなあ、と思います。
PRON タグ
今回のバージョンアップで Microsoft Haruka が PRON タグに対応しています(Microsoft Helen はもともと対応していましたが)。
これは「読み方」を指示するための仕組みです。
例えば「これは人類普遍の原理であり、この憲法は、かかる原理に基くものである。」という文章を Microsoft Haruka に読ませますと、後半にある「基く」の部分を読み間違えます(以降、文章部分が生成された音声 MP3 ファイルへのリンクになっています)。
これは、現在一般的な「基づく」という送り仮名ではなく、「基く」と「づ」のない古い書かれ方がされているためです。
この部分を PRON タグで修正して「<xml>これは人類普遍の原理であり、この憲法は、かかる原理に<pron sym="モトヅ">基</pron>くものである。</xml>」とすると、正しく読み上げるようになります。
全てにカナを振る
それでは、すべての漢字にカナを振れば、(PRON タグ対応であれば)どの合成エンジンでも絶対に読み間違いのない文章となるか?というと、確かに読み間違いはしませんが、より不自然になってしまう可能性は高いでしょう。
上記の例にすべてカナを振ると、「<xml>これは<pron sym="ジンルイ">人類</pron><pron sym="フヘン">普遍</pron>の<pron sym="ゲンリ">原理</pron>であり、この<pron sym="ケンポウ">憲法</pron>は、かかる<pron sym="ゲンリ">原理</pron>に<pron sym="モトヅ">基</pron>くものである。</xml>」となります。
もう一つの例として、「われらは、いづれの国家も、自国のことのみに専念して他国を無視してはならないのであつて、政治道徳の法則は、普遍的なものであり、この法則に従ふことは、自国の主権を維持し、他国と対等関係に立たうとする各国の責務であると信ずる。」にすべてカナを振ると、「<xml>われらは、<pron sym="イズレ">いづれ</pron>の<pron sym="コッカ">国家</pron>も、<pron sym="ジコク">自国</pron>のことのみに<pron sym="センネン">専念</pron>して<pron sym="タコク">他国</pron>を<pron sym="ムシ">無視</pron>してはならないので<pron sym="アッテ">あつて</pron>、<pron sym="セイジ">政治</pron><pron sym="ドウトク">道徳</pron>の<pron sym="ホウソク">法則</pron>は、<pron sym="フヘンテキ">普遍的</pron>なものであり、この<pron sym="ホウソク">法則</pron>に<pron sym="シタガウ">従ふ</pron>ことは、<pron sym="ジコク">自国</pron>の<pron sym="シュケン">主権</pron>を<pron sym="イジ">維持</pron>し、<pron sym="タコク">他国</pron>と<pron sym="タイトウ">対等</pron><pron sym="カンケイ">関係</pron>に<pron sym="タトウ">立たう</pron>とする<pron sym="カッコク">各国</pron>の<pron sym="セキム">責務</pron>であると<pron sym="シン">信</pron>ずる。</xml>」となります。
やはり、日本語にとって漢字というのは、構造の解析や発音の確定に重要な要素となりますので、読み間違える個所のみ修正した方がいいと思います。
単なるカナ変換なのか?
さらに、この PRON タグは、内部的には単に該当部分をカタカナに書き換えているだけなのか?という疑問を感じましたので、試しに漢字部分を全てカタカナに書き換えた「これはジンルイフヘンのゲンリであり、このケンポウは、かかるゲンリにモトヅくものである。」を読ませてみました。
結果は全て PRON タグを振ったものよりさらに不自然になっています。
ついでに、すべてひらがなの「これはじんるいふへんのげんりであり、このけんぽうは、かかるげんりにもとづくものである。」を読ませてみると、もっとひどくなりました。
とりあえず、少なくとも「単なる事前カタカナ置換」ではないように聞こえます。
PRON タグの用途
とはいえ、例えば「動画に付けるナレーションを作る」といった「音声ファイル」のみが必要な場合には、別に読み間違える個所を直接書き換えてしまっても、特に問題はないだろうと思います。
わざわざ PRON タグをつけて読みを指定するというのは、まあ、六法や文学作品といった「原文」も重要である場合に、「後で修正個所を確認できるように明示的に残しておきたい」とかそういう用途でしょうか。
バージョンアップすべきか?
で、結局バージョンアップすべきか否か?という話ですが、すでに述べたようにメジャー番号が上がることによる厄介な問題が存在し、かつ旧バージョンとの共存もできないため、「PRON タグを使いたい!」というようなことでもなければ、使っているアプリケーションの対応状況を見てから、でいいのではないかと思います。
とはいえ、Microsoft Speech Platform 自体比較的最近出てきたものですので、今これに対応しているアプリケーションということであれば、それも比較的アクティブなプロジェクトであることが多いでしょうから、たいていの場合早いうちに対応されるかと思いますが。
だだしもちろん、今ある「旧 Microsoft Speech Platform 対応アプリケーション」は全て新バージョンでは動かない、というわけではなく、例えば「テキストを読み上げ・録音するスクリプト」で公開した spcbght.bat などは、特に対策をせずともそのまま動いています。
バージョン番号変更に伴う被害は、C言語などで開発された「システムに近いところに直接アクセスする必要のある」ものが被ることになります。
- 関連記事
コメントの投稿
sapi5化
11のsapi5化については、こちらのページに書いて頂いた方が読みやすいかと。
逆に、向こうのページが読みにくいので。
デスクトップに MS Harukaをインストールして、SAPI5化しようとしたら、駄目でした。
SAPI5化は出来ますが、動きません。
10月02日にやったノートの方は問題がなかったのですが。
どちらも、WinXP homeです。そして、どちらも、Microsoft Speech Platform 11
のMS HarukaはNoahさんのText To Wavで動いています。
何か心あたりはありますでしょうか?
Re: sapi5化
貴重なご意見ありがとうございます。
確かに新バージョンに関しては新バージョンの記事にまとめるのもいいアイデアですね。
ただ、多くのブログがそうではないかと思うのですが、
当ブログもほとんどが検索エンジンから該当ページへの直接訪問で、
関連記事を書いた時はなるべく「追記」として過去ページにもリンクを貼ったりしているのですが、
アクセス解析などを見ているとそういうリンクから新ページも参照される方は意外なほど少ないのです。
それで「SAPI5化」で最初に飛んでこられるであろうページに情報を集中させる方針にしています。
後段の「SAPI5化失敗」に関しては、難しいですね。
Text To Wavで動くということは「.NET」も「OSのビット数」も「msir3jp.dll」も関係ないでしょうし、
「SAPI5」としては見えているということはレジストリの記述間違いの線もなさそうですし…。
こうなると原因として予想できるものがなく手詰まりな感じですね…。
あとご存知でしたら申し訳ないですが、「SAPI5化」は
「http://www.neko.ne.jp/~freewing/software/ms_sapi_tts/」で紹介されている
「reg COPY "HKLM\SOFTWARE\Microsoft\Speech Server\v11.0\Voices\Tokens" "HKLM\SOFTWARE\Microsoft\Speech\Voices\Tokens" /s /f」
というコマンドで行うと言語ごとにREGファイルを抽出したりせずまとめで全部コピーできるので便利かと思います。
VistaやWin7では管理者権限が必要なため、結局「初心者にも簡単!」とはいかないのですが…。
それでは。
「OSのビット数」
やっぱ、難しいですか。。。
あとご存知でしたら申し訳ないですが、Microsoft Speech Platform - Server Runtime に関してですが、
OSでは無く、読み上げソフトに依存しているようです。
読み上げソフトが32bit用か64bit用に作られたかによるようです。
実際、Win7の64bit環境で32bit用に作られた、NVDAが32btの
Server Runtime v11 をインストールして動いたと聞いていますし、
棒読みちゃんのヘルプにも、OSが64bit環境の方は32bit用のServer Runtimeを
インストールするように書かれています。
http://chi.usamimi.info/Program/Application/BouyomiChan/Tips.html#SpeechPlatform
Re: 「OSのビット数」
WOW64(64ビットWindowsの32ビットエミュレーション機能)がらみの問題ですね。
レジストリだけの話かと思い「HKLM\SOFTWARE\Microsoft\Speech Server」以下を
丸ごと「HKLM\SOFTWARE\Wow6432Node\Microsoft\Speech Server」に移してみましたが
上手くいきませんでした。
とりあえず64ビットOSには両方インストールしておくのがよさそうですね。
x86
情報はばらまくものですね。びっくりしました。
Microsoft Speech Platform - Runtime (Version 11)のx86版が消えています。
http://www.microsoft.com/download/en/details.aspx?id=27225
なので、Microsoft Speech Platform - Software Development Kit (SDK) (Version 11)
http://www.microsoft.com/download/en/details.aspx?id=27226から x86_MicrosoftSpeechPlatformSDK\MicrosoftSpeechPlatformSDK.msi をダウンロードして下さい。
という情報を頂きました。
Re: x86
11へのメジャーバージョンアップ(2011/09/01)の後、
詳細不明ですが20110/10/25にもアップデートがあり、その時に消えたようです。
ただ、x64版のダウンロードURLの「x64」の部分を「x86」に変更するとx86版がダウンロードできますので、
もしかしたら差し替えの際に載せ忘れただけなのではないかと思っているのですが。
一応マイクロソフトさんにメールしたところ「関連部署にフィードバックさせていただきます」とのことでしたので、
単なるケアレスミスの類であれば近いうちに復活するかもしれません。
x64→http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=4cd143dd-ac6b-4d16-a670-3dfb92edf6d4&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fA%2f6%2f4%2fA64012D6-D56F-4E58-85E3-531E56ABC0E6%2fx64_SpeechPlatformRuntime%2fSpeechPlatformRuntime.msi
x86→http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=4cd143dd-ac6b-4d16-a670-3dfb92edf6d4&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fA%2f6%2f4%2fA64012D6-D56F-4E58-85E3-531E56ABC0E6%2fx86_SpeechPlatformRuntime%2fSpeechPlatformRuntime.msi
復活
問い合わせて頂いて、ありがとうございました。
昨日付けで、復活したと情報を頂きました。
http://www.microsoft.com/download/en/details.aspx?id=27225
Re: 復活
実は長く復活しないようだと情報を求めてこられる方に申し訳ないなと、
一昨日(もう日付変わったため4日前ですか)にいくつかの関連エントリーに
「x86版は直接ダウンロードしてください」と直リンクを追記したのですが、
翌日にはx86版が復活していてわずか一日でまた書き直す羽目に…。
たった一日待っていれば二度手間をかけずに済んだのですが(笑)。