ウェイクワードエンジン Porcupine の使い方
ウェイクワードエンジン 「Porcupine」の使い方をまとめました。
1. Porcupine
「Porcupine」は、高精度かつ軽量なウェイクワードエンジンです。「OK Google!」や「Hey Siri!」のような、ウェイクワードに反応するアプリを作成することができます。
「ウェイクワード」は、発話された時にデバイスをアクティブにすることを目的とした特別な単語またはフレーズです。「ホットワード」「トリガーワード」「ウェイクアップワード」とも呼ばれます。
2. Porcupineの特徴
「Porcupine」の特徴は、次のとおりです。
2. ウェイクワード
以下のウェイクワードが利用可能なモデルが、無料で提供されています。
それ以外のウェイクワードは有料で、「Picovoice Console」で学習することができます。現在の対応言語は、英語、ドイツ語、フランス語、スペイン語のみですが、日本語もComming Soonに入っています。
3. Pythonでのウェイクワード検出
Pythonでのウェイクワード検出の手順は、次のとおりです。
(1) Python3の仮想環境で、「pyaudio」と「porcupine」をインストール。
$ pip install pyaudio
$ pip install pvporcupine
(2) 「アクセスキー」(access key)を以下のサイトで取得。
(3) 以下のコードを作成して実行。
<access_key>には、取得したアクセスキーを指定します。
import struct
import pyaudio
import pvporcupine
# porcupineの生成
access_key = "<access_key>" # アクセスキー
keywards = ["computer"] # ウェイクワードを指定
porcupine = pvporcupine.create(keywords=keywards)
print(keywards)
# オーディオストリームの生成
pa = pyaudio.PyAudio()
audio_stream = pa.open(
rate=porcupine.sample_rate,
channels=1,
format=pyaudio.paInt16,
input=True,
frames_per_buffer=porcupine.frame_length)
while True:
# 音声認識
pcm = audio_stream.read(porcupine.frame_length)
pcm = struct.unpack_from("h" * porcupine.frame_length, pcm)
result = porcupine.process(pcm)
# ウェイクワード検出時の処理
if result >= 0:
print("Wake Word!")
(4) 「computer」と話しかける。
ウェイクワード検出が成功すると、「Wake Word!」と表示されます。
['computer']
Wakeword Word!
4. 独自のウェイクワードの学習
「Picovoice Console」を使って独自のウェイクワードを学習できます。「エンタープライズアカウント」(30日間の無料トライアルあり)が必要になります。
ウェイクワードの学習手順は、次のとおりです。
(1) フレーズを入力。
(2) プラットフォームを選択。
(3) ブラウザ内でモデルをテスト。
(4) モデルのダウンロード。
[ダウンロード]をクリックして、ウェイクワードモデル(拡張子が.ppnのファイル)のコピーを取得します。
5. ウェイクワードのフレーズの選択
ウェイクワードのフレーズの選択は、正確さとユーザーエクスペリエンスの両方にとって重要になります。
この記事が気に入ったらサポートをしてみませんか?