2018.4.15
キモヲタだけど、女子高生と会話したい!#6【React】
どうしたものかと悩んでいたところ
React Nativeというフレームワークを見つけました。
Facebookが開発したようで、他のハイブリッドアプリと異なり、HTMLベースではなく、ネイティブコードを呼び出して画面描写するため動作が軽快という点ですね。その分学習コストは多少かかりそうですけど・・・・・・。
あと、ハイブリッドアプリとはいえ完全にコードを共通化できるわけじゃないみたいです。体感的に7~8割ほどが共通のコードで動きますが、それ以外は自前で実装しないといけなさそうです。
ただ、javascript
(というか、React.js)が使え、Webの知見も使えるみたいです。
ここまで読むと、採用のメリットはあんまりなさそうなんですが、僕が「ん?」と思ったのは
困ったらjavaで書けるということ。iOSならswiftですかね。kotlinで書けるのかどうかは分かりませんが、少なくともjavaでネイティブコードが書けるみたいです。
車輪の再発明になりそうな気もしますが、とはいえ通常の音声認識に加え
無音判定とかやんなきゃいけないので、その辺のロジックを組み込もうと思うと、この辺りの機構は自作した方が良さそうな気がします。
とはいえ、文単位で音声を認識できれば、あとはインポートしたサービスに投げて解析してもらい、それを人工知能とやりとりすればいいだけの話なので難しくなさそうですね。
最悪僕だけが使えれば支障はないので、とりあえずAndroidで作っていきましょう。音形操作とかのロジックがほんと今考えてもわけわかんないですけど、作っているうちになんとかなると信じています。
んじゃ早速
インストールしましょ。
Windowsでの環境構築は大変だと聞いたのですが、今ではいろいろ便利になるようになってるみたいですね(笑)らくちんらくちん。
エミュレーターじゃなくて実機で確認するタイプらしいんですが、Expoとかいうアプリの使い勝手がメチャいいですね。たのしい。
とりあえず、最初は使い方に慣れるため、ボタンを設置して、そのボタンを押したら画面が遷移するみたいなものを作ってみましょうかね。
ただその前に、Reactの構文を知らないとわけわかめなので、学習してみます。
とりあえず
このページがわかりやすかったので、学習する方は参考に。僕はイントロダクションはやりません。
あんま理解できてないし
とりあえず、基本的なお作法はなんか分かってきたので、色んな過程をすっ飛ばして
音声録音からやってみたいと思います。
実装の目標としては、ボタンを押したら録音開始して、一定時間無音と判定されたら録音をやめる、みたいな動作が欲しいところですね。
単にボタンを押して終了、としないのは
結局録音中に波形にアクセスできるロジックがないと求めるものが手に入らないというところにあります。
さて、これは自前でロジックを組まなくてはいけないのかなぁと思いながら憂鬱な気持ちで検索して手段を考えていたところ、
音声区間検出というワードが引っかかりました。
探してみると、例えば
vad.jsというライブラリがあることがわかり、こういったライブラリを組み込んで使えるのであれば、後は容易に実装できそうだな、と思うわけでございます。
だったらReact Nativeである必要なくなっちゃったネとも思うけどな
まぁこのライブラリはちょっと問題がありそうなのでたぶん使わないと思うのですが、そんな感じで組み込めそうなライブラリを選定して、組み込んでいきたいなと思う所存です。
じゃ、こっから先は次回。おたのしみに。