tinkering好きの素人

ものづくりの記録

google cloud speech api を使ってサンプルを実機iphone 6で動かしてみた

google音声認識APIの精度が大幅にあがったと聞いてiphoneで試してみたくなりました.
swift, objective-Cに関する知識は皆無ですが,公式の解説が親切そうだったのでチャレンジ.

github.com

まずはこちらのサイトにアクセスしてみます.

クイックスタート曰く,

  • Clone this repo and cd into this directory.
  • Run ./INSTALL
  • In Speech/SpeechRecognitionService.swift, replace YOUR_API_KEY with the API key obtained above.
  • Build and run the app.

らしい.

環境は

  • An API key for the Cloud Speech API (See the docs to learn more)
  • An OSX machine or emulator
  • Xcode 8 beta 6 or later
  • Cocoapods version 1.0 or later

があればいいらしい.

Macなので2個目,3個目は特に問題ないです.
手順は以下です.

APIキーの取得

google cloud platformに登録します.登録の詳しい手順は除きます.
さて,登録ができたらAPIキーの取得です
取得の順序はこちらの方の手順の3番の途中までを参考にさせていただきました。

qiita.com

2番までできたら,3番で「サービスアカウントキーの取得」ではなく「APIキー」を選びます.
現れたキーコードをコピーしてください.
これで取得完了です.

cocoapodsのインストール

qiita.com

こちらの方の「cocoapodsの環境構築」までの手順を参考にさせていただきました。
とても簡単でした.

これで準備完了です.

リポジトリをクローン

先程も挙げた

github.com

をクローンするわけですが,gitをインストールしている人はターミナルで

git clone https://github.com/GoogleCloudPlatform/ios-docs-samples.git

でOKと公式に(優しい).
一瞬でした.

run ./install?よくわかんないのでpod install

こちらできませんでしたが,やらなくても動作しました.
代わりに,というわけではないですが,/ios-docs-samples/speech/Swift/Speech-gRPC-Streamingにターミナルでcdして

pod install

をしました(podのファイルをアクティベートしてる感じかな?)


[追記]
もう一回やってみたらpod updateできなかった。
github.com

こちらの2/3のsamskiterさんの書き換えに従ったらできた

xcodeプロジェクトのAPIを書き換える

/ios-docs-samples/speech/Swift/Speech-gRPC-Streaming/Speechにある,SpeechRecognitionService.swiftを書き換えます.
このファイルを開いて,
let API_KEY : String = "YOUR KEY"
のyour key の中に先程取得したAPIキーをコピペしてセーブで完了です.

エラーの出るところを書き換える

エラー出たらswiftのわからない私には結構ピンチですが,出ました.
こちらの方のSTEP2を参考にさせていただき,

qiita.com

google/........./~~~~.h
のようになっているところを
googleapis/~~~~.h
に書き換え.
ビルド→エラーの出たところをこの法則で直す→ビルド→エラーの出たところをこの法則で直す...と繰り返してエラーがでなくなったらシミュレータでローンチできました!

日本語にする

できた!start streamingをクリックして話すと,認識された
…あれ,英語だ,,ということで日本語に直したい.

言語のサポート  |  Google Cloud Speech API  |  Google Cloud Platform

こちらによるとlanguageCodeをja-JPに書き換えればいいらしい!
そこでSpeechRecognitionService.swift内をxcodeのfindでlanguageCodeと検索し,

recognitionConfig.languageCode = "ja-JP"

に書き換え.
もう一度ビルドすると,かなりの精度で認識されました!

実機で動かす

でもなんとなくシミュレータでは味気ない,,,
ということで実機で動かしたくなりました,が,ここかなり手こずりました.
でも無料で実機テストできるのはいいですね,Androidを使う必要なくなりそうです

xcodeに自分のapple IDを登録

[xcode]>[Preferences]>[Accounts]で+マークをクリックして,IDを登録します.

設定をいじる

Xcodeの階層表示でspeechをクリック

f:id:minoritytech:20180204222412p:plain

この画面で

  1. signingのところでteamをNoneではなく自分で先程登録したユーザ名を選びます.
  2. Deployment Infoでtargetに自分のiOSのバージョンを入れる
  3. IdentityのBundle Identifierをjp.~にする(謎)

3は
qiita.com
こちらを参考にさせていただきました。ほんとに謎,,

実機に繋いでローンチ!

usbでiphonemacにつないで
f:id:minoritytech:20180204222412p:plain
こちらの上の▶■の右横をクリックしてデバイスを自分のIphoneに.

エラーが出た場合はiphone側でアクセスを許可

[設定]>[一般]>[プロファイルとデバイス管理]
デベロッパAPPのアカウント名をタップして許可してください.

ローンチ成功です!
これで外部イヤホンマイクでの音声認識も簡単にできました.