本日、Whistleを公開します。これは、モバイル端末、ウェアラブル機器、ロボット、スマートホーム機器、自動車システム、マイクロコントローラー向けに設計されたオープンな音声認識モデルです。16.9 MBの単一ファイルで、依存関係なしにCPU上で動作します。Needleと同じC++エンジンに、コンテナーと量子化方式を共有する形で読み込まれるため、1つのバイナリで音声クリップを直接ツール呼び出しに変換できます。
Whistleは3つの処理をすべてデバイス上で行います。16 kHzモノラル音声を最大30秒まで文字起こしでき、対応言語は英語、ドイツ語、フランス語、スペイン語、イタリア語、オランダ語、ポーランド語です。言語は指定がなければ自動判定されます。各単語について開始時間、終了時間、確率を含む単語単位のタイムスタンプを、デコーダーのアテンションから整列させて出力します。また、文字起こしをデコードせず、80ミリ秒フレームごとに1行の音声埋め込みを出力することもできます。このモデルは11ミリ秒で最初のトークンに到達します。
アーキテクチャは2つの部分から成ります。フロントエンドは音声を80のlog-melバンドに変換し、畳み込みステムを使って30秒分を375フレームに圧縮します。次にエンコーダーが、Needleと共有する8つのSimple Attentionブロックを適用します。アテンションは非因果的なので、3秒地点のフレームは12秒地点のフレームに注目できます。デコーダーは幅512の8つのLaddered Simple Attentionブロックを使い、各層にはエンコーダー出力を読み取るゲート付きクロスアテンションがあります。これらの射影はクリップごとに1回だけ計算されるため、5つのビーム探索経路は、音声を5回走査するのではなく、5つの短い文字起こしキャッシュのコストで済みます。
デコードでは、長さで正規化された対数確率で採点される5つのビームを使います。キーワードバイアスは、ユーザーが指定したフレーズに対してAho-Corasickオートマトンを走らせ、探索が進むにつれてそれらの確率を引き上げます。語彙は8,192個のテキストピースと7つの言語トークンから成り、文字起こしは320トークンで上限が設定されています。
このモデルはブラウザーのサンドボックスでも利用でき、音声がデバイスの外に出ることはありません。
出典: Hacker News · 要約:HeadlinesBriefing