-
Nabaztagを復活させました
動かなくなって8年ぐらい?ずっと箱にしまわれていたどころか、そのまま2回も引っ越したうちのウサギロボ ...
さて・・・。うちの子が息をしたのは良いけど、外国語しか喋れないのはやっぱり気になる。音声だけ置いてやれば喋るんでしょ?結局のところ!!という簡単な答えから壮大な冒険(私の中で)が始まりました・・・。
過去の音声データのアーカイブ探し
どっかに落っこちてるの拾えたら最高!という訳で全力で検索した結果、一番近かったのがこちらのに記載されている情報・・・。でしたが結果はリンク切れ。10年前ならまだ落っこちてたかもしれなかった・・・(泣)インターネットアーカイブにもひっかけてみましたがデータ救出ならず。できるだけオリジナル音声にしたかったけど、ないものはない!次の方法を探します。
https://github.com/andreax79/ServerlessNabaztag#install-instruction
過去の音声の元となった音声合成エンジン探し
拾えないなら作るしか!「jp-Tamura」さんをキーにしてこれまた全力で検索。運営元が倒産した当時のオリジナルサーバのソースコードがGITにあるので、そこからヒント・・・。昔はこんなにバリエーション豊富な言葉を喋れたんだよリスト。
https://github.com/sebastienhouzet/nabaztag-source-code/blob/master/server/OS/config/ttsserver.xml
どうやらReal Speak 4.0という製品だった模様。製品名変わっているようですが、買おうと思えば買えるっぽい。高い!!
https://www.nuance.com/ja-jp/index.html
ノリと勢いでちょっと合成したいだけには有料だしお試しできないし、学習コスト高すぎそうで現実的でないので却下。さよなら「jp-Tamura」さん。
無料で扱いやすくて良さげな音声合成エンジン探し
10年前とは恐らく違うと思われるのが、現在は音声合成エンジン使って喋らせるアプリケーションが山ほどあるということ?(私が無知なだけかも)検索するととにかくいっぱい出てきました。が、今回やりたいのはただTTSで読み上げるというよりは、読み上げたものをファイルに保存しないといけないし、読み上げソフトを探してるわけじゃなくて読み上げ機能を組み込みたい!ので候補2つに絞りました。
それぞれTTS(音声合成)、STT(音声からテキスト抽出)ができるとのことで、何喋ってるかさっぱりわからないmp3を日本語mp3にしたい!今回の案件にはもってこいだなと。どちらもデモページで試せるので、試してみたところ。Watsonの方は全然だめでした・・・。ウサギがしゃべる音声は短い言葉が多いので「●●は〜です!」と入力してみると、「は」を「わ」と発音して欲しいのに「は」で発音されます。Googleは大丈夫。数語試したところで今回はGoogle使おうと思いました。 違いと言えばGoogleの方は女性2名男性2名の4音色から選べますがWatsonは女性1名で固定でしたー。 APIの初期設定や使いやすさはWatsonの方が気軽そうではあったけど・・・。
Google Cloud Text to Speechを使ってみる
https://blog.apar.jp/web/9893/
おなじみ、先人の知恵!!(笑)日本語でとてもわかりやすく記述してくださってて、助かりました・・・。書いてある通りやればできます。あとはGoogle公式のほうもドキュメント充実してるので、わかんない時はそっち見ればOK。
JSONリクエスト投げて、JSONで帰ってくるのでテキストを抜き出してbase64で変換してmp3へ・・・!って1回試しただけで「もうむり」感があったのでシェルスクリプト作って作業しました。(ここはまた後日別記事で。)
月100万語までなら無料、ということで今あるウサギのセリフmp3を全部日本語入力したとしても100万語は行かないだろう&最悪次の月に作業を持ち越せばいいやということで、とりあえず「日本語入力」→「mp3出力」の口は確保。
Google Cloud Speech to Textを使ってみる
https://blog.apar.jp/web/8971/
日本語音声を作る分にはもう次いっても良いけど逆もできるということで、せっかく何言ってるかわからない英語音声が手元にあるので、やってみることに。ウサギにはsuprizeというフォルダの中に意味のないジョーク音声が100個ぐらい詰め込まれているのですがいかんせん英語なのでわからん!テキストにできたら、翻訳・・・しやすいかも?ということで。
こちらも先人の知恵をお借りしつつ書いてある通りやればできるのですが、音声ファイルをサーバにアップロードはしたくなかったので、TTSの時みたくローカルの音声ファイルをbase64で変換してJSONに埋め込み、JSONで帰ってくるシェルスクリプト書いて作業しました。(ここもまた後日別記事で。)
うーん、そもそも入力がmp3対応していなくてflacとかwavに変換しないといけないのですが、mp3からflacに変換する際に上手くいくファイルといかないファイルとが半々ぐらいで、上手くいくファイルは綺麗なテキストが抽出されます!入力元の音声ファイルがどんなファイルなのかで、使えるか使えないか決まる感じでした。今回は半分ぐらいだめだったんで、参考までにテキスト化を試みるけど基本的には自力でリスニングしてそれっぽい翻訳をして日本語化するしかないかな・・・と少々残念な結果でした。
こちらは月60分ぶんの音声ファイル処理が無料ということなので、長い講義とか重いデータだと気をつけないと無料の枠を超えそうです。でも使えた場合かなり内容が良いので無料の枠内に収まるなら積極的に使うと便利そう&有料でも言ってられない時はお金出してでも使いたいかも・・・?!(そんな仕事や状況は今の所私にはないですが)
まとめ
ひとまず気軽に音声を作り出すための調査は完了したということで、いよいよ本格的にmp3ファイルを作っていって「japanese-ja」の設定を反映させます。単純にファイル作るだけorテキスト化するだけなら、そういったWebサービスもあるのでこんなわざわざやらなくてもいいじゃん!って話なのですが、最終的にはTTSエンジンを組み込んで使いたいのでわざわざこんなこと実験してます。