Skip to content
mako edited this page Jul 13, 2023 · 57 revisions

codamaとは?

"ジャービス、今日の天気を教えて"

こんなことができたら面白いですよね。 codamaを使えば"ジャービス"という言葉をウェイクアップ・ワードにした音声対話開発ができるようになります。

「codama(こだま)」とは、ユカイ工学株式会社(以下、ユカイ工学)と株式会社NTTドコモ(以下、ドコモ)が、XMOS Ltd(以下、XMOS)のボイス・プロセッサーを採用した音声対話開発キットです。

製品サイトはこちら https://codama.ux-xu.com

本製品に搭載された技術により、様々な電子機器やIoTデバイスを、音声で簡単に操作することを可能にしており、本製品が部屋の隅に配置された場合でも、予め設定出来る様々な呼びかけに反応(ウェイクアップ・ワード)し、クリアに音声をキャプチャー(ビームフォーミング、およびノイズキャンセル)し、音声によるAPIサービスへのアクセスを可能にします。

本ドキュメントは「codama」のセットアップ方法、およびAPIを利用したサンプルプログラムの説明、「codama」をもっと活用するための各パラーメータの設定方法を説明します。

codamaの役割

codamaは、周りのノイズを消すノイズキャンセリング、デバイス自身が再生している音をキャンセルして処理ができるようにするエコーキャンセリング、特定の方向の音にフォーカスを当てて集音するビームフォーミング機能を有しています。

これらの機能により、多少うるさいところでも音声認識が実現できたり、音楽を再生しているときに中断して次の命令を出すことができるようになります。これは市販のマイクやスピーカーを組み合わせた構成では実現することができません。

codamaはこれらの機能を下図で示すようにRaspberry PiやPCに提供することで、Raspberry PiやPCで音声対話開発を実現できる環境を提供しています。 また、Raspberry PiやPCに接続することで、センサーと組み合わせたり、モーターやLEDなどの出力装置と組み合わせることが容易に出来、市販のデバイスとは違った、オリジナルのスマートスピーカーを作り出すことができます。

Raspberry Piとの接続

image

PCとの接続

image

チュートリアル

ここでは (1) Raspberry Piの初期設定から、(2) picovoiceを使ったウェイクアップ・ワードの作成を行い、(3) 話しかけた内容をWhisper APIでテキストに変換し、(4) ChatGPT APIで返答内容を生成、(5) Google CloudのText-to-Speechを使って音声合成し、オリジナルのスマートスピーカーを作成するまでの手順を順番に説明します。

1. Raspberry Pi, codamaの設定方法

ここではRaspberry Piの設定方法および、codamaの設定方法を説明します。

  1. Raspberry Piを設定する
  2. codamaをRaspberry Piに取り付けて設定する

2. ウェイクアップ・ワードの作成

"ジャービス","アスラーダ"等あなたの好きな言葉でウェイクアップ・ワードを作ってみましょう。
ウェイクアップ・ワードとは、音声スピーカーに対して音声アシスタント機能を呼び出す音声コマンドです。 このウェイクアップ・ワードの作成には、picovoiceのporcupineというウェイクアップ・ワード検知エンジンを利用します。

3. 話しかけた内容をWhisper APIでテキストに変換

ウェイクアップ・ワードを検知できるようになったら、その後話しかけた内容をテキストに変換します。この変換にはOpenAIのWhisperという音声認識モデルを使用します。

4. ChatGPT APIで返答内容を生成

話しかけた内容をテキストに変換できたら、その内容をChatGPT APIに送信し、返答内容を生成します。

5. Google CloudのText-to-Speechを使って返答内容を音声合成

生成された返答内容を音声合成します。合成した音声ファイルを再生すれば、スマートスピーカーの完成です。

codamaのパラメータ調整や他の機能

ウェイクアップワードの処理以外にも、codamaには多数のパラメータが存在し、自由に調整することができます。 例えば、DOA(音源方向)を取得したり、特定の方向からのみ反応するように調整するといったことが可能です。 調整の詳細に関しては下記ご確認ください。

Clone this wiki locally