SiriProxyを使ってみた
参考サイト (というかそのまま)
SiriProxyのプラグインとしてSiriで家電を操作するSiriProxy-iRemocon
SiriProxyはSiriのProxyサーバーです。要は、Siriで話した内容の解析結果をPCに飛ばせるよってこと(細かいことは気にしない...) 詳しいことは、参考サイトを参照w
Rubyを入れる
rvm install 1.9.3 gem install bundler
DNSの設定
confファイルを雛形から作成して、address情報を追記する
brew install dnsmasq cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf vi /usr/local/etc/dnsmasq.conf
# Add domains which you want to force to an IP address here. # The example below send any host in double-click.net to a local # web-server. #address=/double-click.net/127.0.0.1 # 192.168.1.29はSiriProxyが可動するマシンのアドレス address=/guzzoni.apple.com/192.168.1.29
アドレスはifconfigとかして調べる
ifconfig | grep inet
保存してから下記のコマンドで稼働する
sudo /usr/local/sbin/dnsmasq
稼働させたら、{iPhone, iPad} のDNSアドレスを192.168.1.29で更新する
SiriProxyのSetup
ライブラリやプロファイルを作成する
git clone https://github.com/plamoni/SiriProxy.git cd SiriProxy mkdir ~/.siriproxy cp ./config.example.yml ~/.siriproxy/config.yml gem install /Users/sngymn/SiriProxy/pkg/siriproxy-0.4.4.gem rake install siriproxy gencerts
gemcertsで~/.siriproxy/ca.pemというプロファイルが生成される
これをメールか何かで {iPhone, iPad} に送りつけてインストールする
SiriProxyの起動
bundle install
siriproxy update
rvmsudo siriproxy server
※ sudo siriproxy serverでも起動できる
あとは、Siriに向かって喋るだけ!!
[Info - Plugin Manager] Plugins loaded: [#<SiriProxy::Plugin::Example:0x007fca5a370d58 @manager=#<SiriProxy::PluginManager:0x007fca5a371320 @plugins=[...]>>] [Info - iPhone] Received Object: LoadAssistant [Info - iPhone] Received Object: SetRestrictions [Info - iPhone] Received Object: ClearContext [Info - iPhone] Received Object: StartSpeechRequest [Info - iPhone] Received Object: SetRequestOrigin [Info - User Location] lat: 35.65755939007164, long: 139.5430340842567 [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SetBackgroundContext [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - Guzzoni] Received Object: AssistantCreated [Info - Guzzoni] Received Object: AssistantLoaded [Info - Guzzoni] Received Object: SetConnectionHeader [Info - iPhone] Received Object: FinishSpeech [Info - Guzzoni] Received Object: AddViews [Info - iPhone] Received Object: SetAssistantData [Info - Guzzoni] Received Object: CommandFailed [Info - iPhone] Received Object: Chunk [Info - iPhone] Received Object: Finished [Info - iPhone] Received Object: StartSpeechRequest [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - Guzzoni] Received Object: ChunkAccepted [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: SpeechPacket [Info - iPhone] Received Object: FinishSpeech [Info - Guzzoni] Received Object: SpeechRecognized [Info - Plugin Manager] Processing 'テスト ' [Info - Plugin Manager] Processing plugin #<SiriProxy::Plugin::Example:0x007fca5a370d58>
何も処理をしないと、こんな感じでレスポンスが飛んできます
あれ...User Location?? 現在地が抜かれてるw さすが...