まとめ
- node-openjtalkをインストールするには、libiconvが必要。
- libiconvのインストールにはコツが必要。
- node-openjtalkをインストールするには、node.jsのv0.12.*が必要。
何かというと
現在、slack読み上げbotちゃんを作っていて、
通知音再生 (そこはかとない時間) 読み上げ音声再生となっていました。
なぜ?
読み上げ音声再生の処理が
1.通知音再生 ⇒ 2.テキストから音声ファイル作成 ⇒ 3.音声再生になっていたため、です。
使っていたライブラリが、"テキストを渡すと、音声ファイルを再生するまでやってから返す"という作りだったので、
"テキストを渡すと、音声ファイルを作ってくれる"ものを探してました。
ちなみに今使っているもの
hecomi/node-openjtalk-waf
こちら、導入はとても楽でした!
欲しいもの見つけた
node-openjtalk
こちらのライブラリは、音声ファイル作成までを行ってくれる作りになってました!
npm installでコケる
脳死でとりあえずnpm installをたたきました。
$ npm install node-openjtalk
するとエラーが・・・
(略)
npm ERR! Linux 4.1.17+
npm ERR! argv "/home/pi/.nodebrew/node/v5.6.0/bin/node" "/home/pi/.nodebrew/curr ent/bin/npm" "install" "node-openjtalk"
npm ERR! node v5.6.0
npm ERR! npm v3.6.0
npm ERR! code ELIFECYCLE
npm ERR! node-openjtalk@1.1.1 install: `node-pre-gyp install --build-from-source `
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-openjtalk@1.1.1 install script 'node-pre-gyp install --build-from-source'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the node-openjtalk packag e,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-pre-gyp install --build-from-source
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs node-openjtalk
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls node-openjtalk
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/pi/work/slack-read-outer-bot/npm-debug.log
npmのページには、でかでかとlibconvが必要だ、と書いてありました。
私の目が節穴すぎる。
libconvのインストール
libconvのインストールは、こちらを参考にしました!
libiconvのインストールでこけた
makeが途中でコケました。。。
(略)
In file included from progname.c:26:0:
./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
^
Makefile:914: recipe for target 'progname.o' failed
make[2]: *** [progname.o] Error 1
make[2]: Leaving directory '/usr/local/src/libiconv/libiconv-1.14/srclib'
Makefile:865: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/usr/local/src/libiconv/libiconv-1.14/srclib'
Makefile:33: recipe for target 'all' failed
make: *** [all] Error 2
"gets is a security hole - use fgets instead"でググってみたところ
この行がよくないみたいで、削除する手順と、getsをfgetに書き換える手順がそれぞれ出てきました。
とりあえずこの行は削除しちゃいました。
configure ⇒ makeを再実行したところ、
ばっちりインストールできました。
それでもコケるnpm install
なんでだーと思って、gitのreadmeを見ていたら
NodeJSのバージョンはv0.12限定でサポートとのこと。。
$ nodebrew install v0.12.14
でv0.12をインストールして、今日は寝ます。
※binaryインストールは、v0.12系はなさそうでした。。
今日の教訓
お詫び
ゴールデンウィークの自由研究であった、ansibleでラスパイをプロビジョニングなのですが
まだ未完成です。。。。