2013年02月09日

open jtalk 1.06 を VS2012で ビルドするバッチ

open Jtalk をビルドするバッチを更新しました。(以前の記事

open Jtalkがバージョンアップしても書き換えなくていいように内部で複雑なことをしていたのですが、open Jtalk 1.06で音響モデルファイルの構成が変わってしまったので、細かなところがうまくいかなってしまいました。最初はいいアイデアだと思ったのですが、こういう自動化よりも、年に一度その都度、ファイル名や処理を書き換えてシンプルなバッチを書いてビルドするのがベストですね。

でも今回はちょっと意地になって対応してみることにしました。ついでに Windows 8 に合わせて去年登場した Visual Studio Express 2012 for Windows Desktop でもビルドできるようにしてみました。他にVC++2008とVC++2010Expressでできるはずです。

ダウンロード: openjtalk_buildbatch-005.zip

MD5:7789eb6a3270eefbadaf827df6028417

(Open JTalk 1.07及びVS2013への対応 2013.12.31更新)

使い方は以前の通りですので、「Open JTalk を Windows でビルドするバッチファイル」を見てください。上記ファイルを展開して、そのフォルダ内にopen jtalk関連のアーカイブを入れ、必要ならばbuild.info でパッチの実の指示をして、prepare.batを実行し、make.batを実行すれば、標準設定ならば、c:\open_jtalk\bin\にopen_jtalk.exeができあがります。c:\open_jtalk\ojtalk.batを使うか、次のようなバッチファイルを実行すると、確認できます。

set MESSAGE=こんにちは
set VOICE=nitech_jp_atr503_m001
cd c:\open_jtalk
(echo %MESSAGE%)>text.txt
bin\open_jtalk -x dic -m voice\%VOICE%.htsvoice -z 6000 text.txt

以前の記事に書いていない主な変更点として、build.infoファイルでパッチを当てるかどうかのフラグとしてPATCH_OPEN_JTALK_MAKE_PAIRを追加しています。右辺に何か文字があると、下記で説明している、open Jtalk 1.05 を VC++ 2012でビルドするためのパッチを当てます。

明記したほうがいいものをいくつか書いておきます。

x64向けにビルドしようとすると、今回から音響モデルデータが htsvoice 形式になったため、今までとは違う原因で hts_engine_API 内でコンパイルエラーや実行時エラーになってしまいます。今のところOpen JTalk をx64でビルドするメリットはありませんが、コンパイルが通らないと無性にその原因を調べたくなるものです。そして、たいていこういうのは ポインタやsize_t 自身のサイズです。具体的には、HTS_Model構造体npdfの型を size_t* からunsigned int*に変えています。また、waveOutOpenのコールバック関数の型のいくつかをDWORDからDWORD_PTRに書き換えます。

それから、htsvoice ファイルをvoiceフォルダの中に直接置くようにしています。たくさんのファイルが必要だったときはvoiceフォルダの中にそれらのファイルが収まったフォルダを置いていましたが、必要なのがhtsvoice ファイルだけなので、アーカイブから抽出してそれだけを置いています。なお、以前の方式の音響モデルデータファイルから、htsvoice ファイルへの変換は htsvconv.exe でできます。Windowsならばhtsvconv.exeの上にマウスでフォルダを落とせば生成されます。

新しいものがあるので、古い Open Jtalk 1.05 を使う必要も無いかもしれませんが、以前の音響データを使うときのためにこれもビルドできるようにしてあります。ただし、open Jtalk 1.05 を VC++ 2012 でビルドしようとするとエラーが出ます。 原因はC++11標準の影響で std::make_pair の明示的なテンプレート引数に関する扱いが変わったためです。これに対応するパッチも作りました。パッチファイルは open_jtalk-1.05_make_pair.patch です。

-      category.insert(std::make_pair<std::string,charinfo>(key,c));
+      category.insert(std::pair<std::string,charinfo>(key,c));

こんな感じです。

build.infoファイルで次のように記述してあると、自動的にopen Jtalk 1.05にパッチをあてるようにしてあります。もちろん patch コマンドがインストールされている必要があります。

PATCH_OPEN_JTALK_MAKE_PAIR=ON

なお1.06では既にこの部分を置き換えてある mecab のコードを利用しているので修正の必要ありません。

他に新しくやったこととして内部での作業で文字列置換の標準入出力のフィルタがほしかったので、rplc.exeというコマンドを作って利用しています。具体的には、プリプロセッサマクロの定義をバッチファイルだけで書き換えるのが難しかったので、mecab\mecab.vcproj 内で@VERSION@をrplc.exeを使って処理対象のバージョンに書き換えています。



posted by takayan at 15:01 | Comment(0) | TrackBack(0) | 音声合成 | このブログの読者になる | 更新情報をチェックする

2013年02月28日

《春(プリマヴェーラ)》 中央の女神のお腹が大きい理由

今回は久しぶりに《春(プリマヴェーラ)》についての話です。あらかじめ言っておきますが、納得しないままこの説を鵜呑みにしないでください。言葉遊びが鍵だとするとこの理由を導くことができるという話です。

この絵のことを調べて、研究者の原文も確認しながら読み込んでいくと、一般的に言われているような中央の女神がウェヌス(ヴィーナス) である根拠が、一つしかないことが分かりました。その根拠とはもちろん、ヴァザーリが描写の不正確な文章の中で書き残していた「ヴィーナスが描かれた二枚の絵がある」という一節です。しかしヴァールブルクをはじめ多くの研究者は、そのことを疑いもせず、中央の女神をウェヌスであるという前提でこの絵をあらゆる知識をつぎ込んで解釈しようとしました。そしてことごとく失敗してしまいました。そりゃ失敗します。だって、彼女はウェヌスではないのですから。彼女はメルクリウス(ヘルメス)の母マイアです。

この絵の三美神の描写がフィチーノの抽象的な愛についての言葉を具象的に描いたものだというのに気付いたことが、ここで解き明かしていった、ボッティチェリの神話画の典拠の発見につながっていきました。ただこの三美神の解釈をしたときは、詳しい辞書を持っていなかったので、ラテン語desinoを英語でleave offと訳して、そのleave offの意味の一つである「服を脱ぐ」を使って単純に解釈したりしていました。いろいろ修正は必要ですが、でもこのとき分かった「言葉遊び」が鍵だという着目はやはり正しかったようです。

さて、本題です。中央の女神がマイアであるという根拠として、『ヘルメス讃歌』のマイアの記述がこの絵に見られるということを以前書きました。この文章にはギリシャ神話のヘルメスつまりローマ神話でのメルクリウスを讃える物語が書かれているのですが、ところどころにその母マイアの記述があります。特徴的なものを抜き出すと、「νύμφη ἐυπλόκαμος」、「ἄντρον ἔσω ναίουσα παλίσκιον」、「καλλιπέδιλον」というのがあって、日本語にすると「豊かな巻き毛のニンフ」、「鬱蒼とした洞窟に住んでいる」、「美しい靴を履いている」という意味なのですが、それをこの絵の描写に見つけることができるということを指摘しました。この描写があることが彼女がマイアである僕の根拠でした。

この描写は全くそのままでこの絵の中に見出すことができたので、わざわざ「言葉遊び」は関係ないと思っていました。しかし、改めて『ヘルメス讃歌』のギリシャ語を訳してみると、やっぱり中央の彼女はマイアでよかったんだという内容が見つかりました。この三箇所では正直根拠としては弱いものでしたが、今回のやつは決定的です。

 

『ホメロス風讃歌』の中には二つの『ヘルメス讃歌』がありますが、長編のほうの『ヘルメス讃歌』は次の出だしになっています。9行目まで引用します。

Ἑρμῆν ὕμνει, Μοῦσα, Διὸς καὶ Μαιάδος υἱόν,
Κυλλήνης μεδέοντα καὶ Ἀρκαδίης πολυμήλου,
ἄγγελον ἀθανάτων ἐριούνιον, ὃν τέκε Μαῖα,
νύμφη ἐυπλόκαμος, Διὸς ἐν φιλότητι μιγεῖσα,
αἰδοίη: μακάρων δὲ θεῶν ἠλεύαθ᾽ ὅμιλον,
ἄντρον ἔσω ναίουσα παλίσκιον, ἔνθα Κρονίων
νύμφῃ ἐυπλοκάμῳ μισγέσκετο νυκτὸς ἀμολγῷ,
ὄφρα κατὰ γλυκὺς ὕπνος ἔχοι λευκώλενον Ἥρην,
λήθων ἀθανάτους τε θεοὺς θνητούς τ᾽ ἀνθρώπους.

この文章の意味は次の通りです。筑摩書房刊の沓掛良彦氏訳よりの引用です。

ヘルメースを讃め歌え、ムーサよ、ゼウスとマイアの御子、
キューレーネと羊多いアルカディアを統べる神、
幸運もたらす御使者を。うるわしい巻毛の畏いニンフのマイアが、
ゼウスと愛の交わりをなしてこの神を産んだ。
マイアは浄福なる神々のまどいを避けて、
濃く蔭をなす洞窟の奥深く住まっていたのだが
その中でクロノスの御子は、夜の帷の垂れこめるさなかに、
うるわしい巻毛のニンフと愛の交わりをなしたのだ。
それは腕白きヘーラーを甘い眠りがとらえていた折のことで、
不死なる神々も死すべき身の人間も、気付きはしなかった。

この文章の中に以前指摘した3つのマイアの特徴のうちの2つがあります。日本語訳だと文の区切りが本来のものと変えているので、分かりにくいのですが、原文でマイアを説明しているのはこの2か所を含む次の部分になります。

νύμφη ἐυπλόκαμος, Διὸς ἐν φιλότητι μιγεῖσα,
αἰδοίη: μακάρων δὲ θεῶν ἠλεύαθ᾽ ὅμιλον,
ἄντρον ἔσω ναίουσα παλίσκιον, ἔνθα Κρονίων
νύμφῃ ἐυπλοκάμῳ μισγέσκετο νυκτὸς ἀμολγῷ,
ὄφρα κατὰ γλυκὺς ὕπνος ἔχοι λευκώλενον Ἥρην,
λήθων ἀθανάτους τε θεοὺς θνητούς τ᾽ ἀνθρώπους.

この文章の中には今まで気づかなかった何かが隠されているかもしれません。調べてみる価値は十分にあります。

νύμφη ἐυπλόκαμος,

素直に訳すと、「豊かな巻毛のニンフ」です。ニンフを女性と訳してもいいでしょう。ただ、絵の中では彼女は頭に花嫁のような薄いベールをかけているので、髪があまりはっきりしません。それでも隙間から見える髪は巻いているように見えます。でもこの絵には他の女性も巻毛と呼べる髪もあるので、今まであまりこの描写を推してはいませんでした。でもこの絵をじっくり見なおしてみると中央の女性は「たくさんの巻毛を持ったニンフ」です。彼女以外に考えられません。

riccioluto

ほら、彼女の襟の回り、胸の回り、曲がった髪の毛のような金色の装飾がたくさんぶら下がっています。これが、豊かな巻毛です。こんな描写のある人物なんて他にはいません。この言葉は「たくさんの巻毛状のもので飾られたニンフ」という意味になります。なおここで使っている画像はGoogle Art Projectのものです。

そして、このデザインが巻毛ならば、メルクリウスがまとっているのも巻毛デザインだと考えられます。メルクリウスの髪の毛ははっきりとした豊かな巻毛ですが、着ている服にもちゃんと共通する巻毛があるので、これは特別な関連のある巻毛ということになります。つまり髪の毛は遺伝なので、血のつながりの可能性を示しています。

mercurius2

Διὸς ἐν φιλότητι μιγεῖσα,

本来の意味は「ゼウスと愛の中で交わった」となります。彼女のおなかが大きいので、最初はこれはこのままの意味だと思っていました。いや、でも言葉遊びの好きなこの作者はこの文章までも絵の中に描きこんでいるはずです。そう考えると、すぐにわかりました。

maiawithgod

この女性はお腹の大きい妊婦として描かれています。この女性をウェヌス(ヴィーナス)とする説では苦しい説明でこの大きなお腹の理由を示していましたが、これはどう見てもお腹に誰かいることの徴です。お腹にいるのは神であるマイアの子どもメルクリウスその人のはずです。つまり神と彼女が妊婦という姿で一体になって描かれていると考えます。つまりこの文は「愛によって神を宿している。」という意味に解釈できます。彼女のお腹が大きく描かれている根拠がこの文にこうしてありました。でも、メルクリウスが画面の左端にいるのに、ここにもメルクリウスがいるというのはちょっとおかしいですね。

αἰδοίη:

これは「高貴な」とか「恥ずかしがっている」という意味の形容詞です。これは正直よく分かりません。彼女は控えめではあるけれど、恥ずかしがっている表情はあまり感じられません。強いて挙げれば、高貴さでしょうか。彼女が右肩からかけている赤いローブです。この布はとても丁寧に複雑な模様が描かれています。縁には真珠の飾りが並んでぶら下がっています。高貴な人がまとっていそうな布です。また胸にかかっている金色のメダルも高貴な物に見えます。紐の部分にはここにも真珠がたくさん埋め込まれています。メダルの模様ははっきり見えませんが、ボッティチェリがよく描いた受胎告知か母子像のようなシルエットが描かれているように見えます。

ここまででまとめると、このようになります。これは中央の女神を形容する言葉の並びです。

たくさんの巻毛状の物を持っているニンフの、愛によって神を宿している、高貴な(彼を生んだマイア)

次は文になります。

μακάρων δὲ θεῶν ἠλεύαθ᾽ ὅμιλον,

δὲ は単純な接続詞です。μακάρων θεῶν は複数属格で「幸多き神々の」です。ὅμιλον は名詞で単数男性対格で「集団」です。動詞ἠλεύαθ᾽は「避ける」の中動態、三人称単数アオリストです。まとめると、「幸多き神々の集団を避けた。」です。この動詞の主語は中央の女神ですので、この絵の状況にとても合っています。確かに左側にいるメルクリウスに恋する三美神は幸せのようです。右側にいるゼピュロスとフロラからの贈物を受け取っているホーラも満足のようです。そんな彼らから中央の女神は一歩下がって、避けるようにそこにいます。まさにこれは中央の女神が一歩下がって描かれている根拠となる文章です。

ἄντρον ἔσω ναίουσα παλίσκιον,

名詞「洞窟」ἄντρον は最後の形容詞「暗い」παλίσκιονと結びついていて、副詞か前置詞のἔσωの支配を受けています。つまり、 ἔσω παλίσκιον ἄντρον で「鬱蒼とした洞窟の中で」となります。ναίουσα は現在分詞の単数女性形で、英語での意味はdwellかabideとなります。本来の意味では「住んでいる」となりますが、この絵に合わせると「とどまっている」となるでしょう。現在分詞なので、これは前にある文章と同時期にある出来事を表しています。まとめると、「そのとき鬱蒼とした洞窟の中にとどまっていた。」となります。しかし、この絵の中には洞窟はありません。とは言ってももちろん中央にある丸いアーチがつくるその内側のことを表しているので、この絵に合わせた言葉の言い換えを考え、「洞窟」ではなく、「空洞」とします。改めて、まとめると「そのとき鬱蒼とした空洞の中にいた。」となります。まさにこの絵の描写です。

cave2

この文をまとめると、次のようになります。

女神は、幸多き神々の集団から遠ざかっているとき、鬱蒼とした空洞の中にいた。

今まで何度か言ってきた彼女がマイアである理由を、より明確した内容になりました。これだけでも十分かもしれませんが、さらに重大な内容が続きます。

ἔνθα Κρονίων νύμφῃ ἐυπλοκάμῳ μισγέσκετο νυκτὸς ἀμολγῷ,

ἔνθα は there でこの場所のことです。Κρονίων は主語でクロノスの息子、つまりユピテルです。νύμφῃ ἐυπλοκάμῳ は既に出てきた言葉ですが、ここでは与格になっています。動詞は μισγέσκετο で、これは分詞として一度出てきています。ここでは三人称単数未完了過去。νυκτὸς ἀμολγῷ は熟語で「夜中に」という意味です。まとめると、この文の意味は「その場所で真夜中にクロノスの息子は巻毛のニンフと一つになっていた。」となります。神々が愛し合う描写ですが、この描写はこの絵の中に見つかりません。そもそもユピテルがいません。

最初、この文章は描かれておらず、前の節までが絵の中に描写されていると思いました。最初に出てきたμίγνυμι は神としか書かれていないと解釈できたので、子どものメルクリウスを宿したと変更できたのですが、ここではクロノスの息子と相手が規定されてしまっているので、メルクリウスにすり替えることはできません。相手がユピテルならば性的な行為として一つになることしか μίγνυμι の意味は選択できません。だからこの描写はこの絵には描かれていないのだと思いました。

しかし、ここで、ものすごくショッキングなアイデアを思いついてしまいました。中央の女神のお腹には、ユピテルがいるんじゃないだろうかと。とても異常な状況ですが、それを一つ受け入れるといろいろ解決しそうです。するとこの文は「その場所で真夜中にクロノスの息子は巻毛のニンフの体に入り込みました。」となります。今もその体の中にいるわけです。さきほど「メルクリウスを宿している」と解釈した文も、「ユピテルと一つになっている」と修正する必要があります。しかしそうすると、メルクリウスが二人いるという矛盾を解決することができます。

次の節はこれです。

ὄφρα κατὰ γλυκὺς ὕπνος ἔχοι λευκώλενον Ἥρην,

この節の最後にあるἭρηνの解釈がとても難しいです。なぜならこの絵の中にゼウスの正妻ヘラが見つからないからです。しかし詳しい辞書を調べてみるとピタゴラス学派の用語でこの単語が「9」の意味を持つことが分かりました。これはまさにこの絵の中に描かれている神々の数です。そこで、これを活かした訳を考えることにしました。試行錯誤の結果、節の区切りをちょっと変えて、Ἥρην を後ろの節に移すとうまくいきそうです。

ὄφρα κατὰ γλυκὺς ὕπνος ἔχοι λευκώλενον,

λευκώλενον は本来女神ヘラを表す形容詞で「白い腕の」です。本来はこのあとにἭρηνヘラがあるので、形容詞として使われますが、今回は名詞化した「白い腕の者」と訳します。この絵の中で人物たちの腕を見てみると、手首まで袖があるのは、花柄のホーラとこの中央の女神だけです。そのほかの神々は男神たちは元々袖などないし、女神は申し合わせたように袖がまくれまくっています。そしてホーラの腕は以前指摘したように蛇の抜け殻模様の袖を付けていて白くありません。白い布の袖を付けているのは中央の女神だけとなります。まさにこの単語 λευκώλενον が示すのは中央の女性のことです。あとは本来の解釈に近い訳になります。γλυκὺς ὕπνος はこの節の主語で「甘き眠りが」となります。まとめると、「甘き眠りが白い腕の女性を捕らえたときに、」となります。これは一つ前の節が成り立った時間を示している従属節です。

Ἥρην λήθων ἀθανάτους τε θεοὺς θνητούς τ᾽ ἀνθρώπους.

Ἥρην は数詞として ἀθανάτους θεοὺς にくっついて、「9柱の不死なる神々」となります。もちろんこの絵に描かれた神々のことです。このようにこの絵の中に描かれている神々の数の根拠は Ἥρην という単語となります。 このあとの θνητούς ἀνθρώπους も複数対格で「死すべき人間たち」の意味になります。おそらくこの絵を見ている鑑賞者のことでしょう。これらを τε を使って並べています。まとめると、「9柱の不死なる神々だけでなく、死すべき人間たちにも気付かれることなく」となります。9柱ということは、中央の女神本人も気付いていないということです。眠っていたので彼が体の中に入り込んだことに気付かなかったということでしょう。

その場所で真夜中にクロノスの息子は巻毛のニンフの体に入り込みました
それは甘き眠りが白い腕の女性を捕らえたとき
9柱の不死なる神々だけでなく、死すべき人間たちにも気付かれることなく

これで中央の女神のお腹が大きくなっている理由が分かりました。それは彼女の胎内に神が隠れているからです。彼女が甘い眠りに捕まっているときに行われたので、女神本人も気付いていません。雨粒にも変身できるユピテルなので不可能なことではありません。お腹が急に大きくなったのは妊娠したせいだと思っているかもしれません。お腹の中がユピテルならば、同時にメルクリウスが二人描かれているという矛盾もありません。そして彼女がこの絵の中心にいる理由もはっきりします。それはこの絵の中心にユピテルがいるからです。

今回引用した箇所から少し離れていますが、『ヘルメス讃歌』には中央の女神の美しい履き物の記述だと考えられるものもあります。57行目にあるマイアを形容するκαλλιπέδιλονという単語です。これは名詞πέδιλονに、美しいという意味の接頭語καλλι-がくっついた単語です。πέδιλονの意味はサンダルもしくは履き物なので、全体で「美しいサンダル」という意味になります。絵の中ではただの靴ではなくサンダルという意味を強調して、細い金色の紐でできた履き物になっています。

sandals

以上のように一連の記述がこの絵の中に見いだされるということにより、中央の女神がマイアであると結論づけられます。そしてそれと同時にこの絵の描写の典拠の一つが『ヘルメス讃歌』の一節であると断定できます。さらにこの部分の意味が本来の意味ではなく、上記のような言葉遊びを駆使した物語が隠されたものだと指摘できます。

ユピテルが女神の体の奥に隠れているなんて内容を絶対知られてはいけません。それに作者がこの解釈を成り立たせるには「死すべき人間たちにも気付かれずに」という言葉を実現する必要があります。この内容は依頼者とボッティチェリだけの秘密だったはずです。これがこの絵の本当の意味が伝えられなかった理由となるでしょう。この絵に隠れていたユピテルの居場所は、ずっと死すべき人間たちには気付かれることはありませんでした。ヴァザーリのおかげで女神の正体も気付かれず、したがってこの物語の典拠も知られることなく、ユピテル(ゼウス)がこの絵の中に隠れていることさえ気付かれませんでした。



posted by takayan at 08:01 | Comment(1) | TrackBack(0) | プリマヴェーラ | このブログの読者になる | 更新情報をチェックする