昨日がようやく仕事納めでした。たまたま友人と話していたらSiriってどうやって答えてるの、という質問があったので、考えてみようと思います。

ただし、全体は公開されてないのであくまで推測ですが。

Siriだけでなく、GoogleやMicrosoftでもこのような音声による検索や操作ができるシステムがありますね。

応答するシステムは、iPhoneの中にハードとしてあるいはソフトウェアとしてスマホ単体で動いてません。これは、ネットワークから切り離してみると(「機内モード」にするとか)、Siriが使えなくなることから分かります。

Siriは、入力された音声データをなんらかの形でネットワークを通じて外部のシステムに送ることによって成立していることになります。

では、送られるデータは喋った音声データでしょうか、それとも音声データを文字に変換したものでしょうか?

Siriが立ち上がると「ご用件は何でしょう?」という画面になります。おそらくこの時点で、端末が認証され、Siriのサーバーと接続できた、ということになります。

ネットワークから切り離すと、音声認識を表すマイクの色が変わることから、音声認識はネットワーク先のサーバーが行なっているようですね。ということは、喋った音声データがそのまま外部サーバーに送られてるとなります。

サーバーはどんなことをするのでしょうか?