ものすごい寒波と低気圧でしたね~。大雪になった地方もあるみたいで、今年の冬も荒れそうですね。写真は圏央道青梅IC近くのだだっぴろい耕作地帯。空が広く奥多摩の山が一望できるのでお気に入りの場所です。今日は晴れていたので、遠くに富士山も見えています。
さて、今回はちょっとだけテクニカルな話になるので、PCアレルギーな方はスルー推奨です。
やっていることは「英語音声を音楽が流れていても聞こえるようにする」だけなんですが、手法が割と泥臭くてめんどいので、この音声ファイルが必要な方がいらしたらメッセージでもください。不特定多数への配布は権利の問題で難しそうなので、いずれ日本語音声ができたら配布環境を整えます。(いつになるのかわかりませんが・・・)
***
ロシア産ナビ 7ways を使い始めて1週間以上経ち、使い方がだんだんわかってきました。癖さえ把握してしまえば意外と使えるというのが今の印象です。
このナビの美徳は何と言っても徹底したアクセシビリティの良さにあります。そこで不満点の一つ「案内の音声が小さすぎて聞こえない」という問題をなんとかしてみました。(ちなみに settings.xml で設定できる音声レベルは最大になっています。)
音楽がなければ聞こえるんですが、僕はドライブ時には必ず音楽をかけます。普通の国産オンダッシュナビならミュージックサーバーも兼ねていて、案内音声が入るときは音楽の音量レベルを落としてくれる、なんていう気の利いたことをしてくれますが、こっそりナビを被せている我々はそんな贅沢なことを言える立場にはないので、「音声そのものをでかくする」という大雑把な解決法を目指します。
そもそも声が小さいのは英語だけで、ロシア語はでっかい声でしゃべってくれるので、何を言っているかはわかりませんが音楽をかけていても案内されていることはわかります。なので、ロシア語と同じくらいの音声レベルを目指せばよいことがわかっています。
まず音声ファイルですが、"sound" というフォルダに *.7wv という名前で格納されています。english.7wv(英語)、default.7wv(ロシア語)、alt.7wv(ロシア語) が同梱されてるので、english.7wv を 7-ZIP が展開できるソフトで展開します。これ拡張子は7wvなんですが 7z ファイルなんですね。
すると、notices.xml と *.opus というファイルが展開されます。notices.xml は状況に応じた音声の設定ファイルです。
<event type="leftTurn">
<notice sourceId="info"/>
<notice sourceId="prepare" speech="%distance2 then prepare_to left_turn"/>
<notice sourceId="action" speech="%distance1 then turn_left"/>
<then sourceId="then" speech="then turn_left"/>
</event>
のような xml 形式で記述されていて、この場合左折ですが、左折アクションにおける段階に応じた発言を規定しているようです。これは今回基本的にいじりませんが、一番最初の notices タグだけ
<notices version="7" title="[en] Loud (Julia)" title:ru="[en] Loud (Julia)"
としておきます。ソフトの settings -> interface でリストに出てくる名前がこれになります。
*.opus が目当ての音声ファイルです。opus は僕は今回初めて知ったんですが、
声に強いフリーの音声コーデックだそうです。ogg vorbis の仲間だとかなんとか…。ですがこのままだと扱いづらいので一度 wav ファイルに変換します。
Opus を開発している
opus-codec.org から opus-tools をゲットします。ここに opusdec というのが入っているので、これをコマンドラインから叩いてすべての opus ファイルを wavにするんですが、いっぱいあってめんどくさいので
for %%i in (./opus/*.opus) do opusdec ./opus/%%i --gain 10 ./output/%%~ni.wav
みたいな bat ファイルにして一括処理します。フォルダは適宜アレしてください。
ここで重要なのは、 --gain 10 という引数。最初は wav にしてから audacity で音量を上げようと思っていたんですが、opusdec で wav にするときに音量の調整ができるみたいだったので、これで済ますことができました。数値は dB ということですが、何デシベルにすればいいのかよくわからないのでロシア語と同じくらいになる 10 にしました。
これで声がでかい wav ができたので、再度 opus にします。
opusへの再変換は opusenc でできるのですが、
for %%i in (./output/*.wav) do opusenc --bitrate 16 --downmix-mono ./output/%%i ./opus2/%%~ni.opus
みたいに bat に記述して、実行します。
このへんの引数は
http://www.navikey.ru/vanilla/discussion/73/preduprezhdeniya-golosom/p1
にあった
http://www.navikey.ru/files/7w/tech/7Ways_sound_tools.zip
を参考にしました。この中にも opusenc と 7z が入っているので、作るだけならこれで事足りると思います。
次に上でできた opus ファイルと同じフォルダに notices タグのタイトル部を編集した notices.xml を入れて、
7z a -tzip -mx0 ./7wv/loud.7wv ./opus/*.opus ./opus/notices.xml
として 7z で 7wv ファイルにします。
これを 7ways の sound フォルダに入れて、7ways の settiings > interface から変更するか、settings.xml の interface タグの soundScheme というアトリビュートを soundScheme="loud" とします。この loud は上で作った 7wv のファイル名です。
これだけの処理ですが、結構聞こえるようになりました。ものすごくうるさい音楽だと厳しいかもですが、割といい線行っているのではないかと思います。
さて、今回は wav ファイルには手を加えませんでしたが、この wav は非圧縮の音声ファイルでPCで録音すれば簡単に作れます。なので、この各 wav ファイルを日本語にしていけばそれだけで日本語音声ナビが完成!するはず、です。
<notice sourceId="prepare" speech="%distance2 then prepare_to left_turn"/>
という発話タグの speech の中身はそれぞれの opus ファイルを 指定しているようなので、語順も変えられそうです。
つまり、作りたければ「
ルノー非公認アイドルおたっぴーナビ」とかができるわけです。本当に作りたいかどうかは全く別の話ですが。