Picovoice/cheetah

On-device streaming speech-to-text engine powered by deep learning

Picovoice / Cheetahとは?

Cheetahは、リアルタイムかつデバイス内で動作する音声認識エンジンです。完全にオフラインで動作し(音声データがデバイスから外部へ送信されることはありません)、スマートフォン、組み込みボード(Raspberry Pi)、ブラウザ、デスクトップOSで動作するほど軽量に設計されています。

主な機能

  • ストリーミング文字起こし – 短いオーディオフレームを入力すると部分的な文字起こし結果が返され、発話が終了すると最終的な文字起こし結果が取得できます。
  • 単語レベルのメタデータ – オプションのAPIにより、各単語のタイムスタンプと信頼度スコアを取得できます。
  • 多言語対応 – 英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語に標準対応しており、商用顧客向けには他の言語も利用可能です。
  • クロスプラットフォーム – ネイティブCライブラリをベースに、Python、Java、.NET、Node.js、React、React-Native、Flutter、iOS、Android、Web(プレーンJSまたはReact)用のバインディングを提供しています。また、Linux、macOS、Windows、Raspberry Pi向けのビルド済みバイナリも提供しています。
  • プライバシー重視 – すべての処理がローカルで行われます。AccessKeyはSDKのアンロックとライセンス管理のみに使用されます。

使用方法(一般的なフロー)

  1. PicovoiceコンソールからAccessKeyを取得します(すべてのSDKで必須)。
  2. Cheetahインスタンスを作成します。AccessKeyとモデルファイルを使用します(デフォルトモデルは同梱されており、カスタムモデルはPicovoice Consoleでトレーニング可能です)。
  3. オーディオフレーム(16-bit PCM)をprocess(またはprocess_annotated)に入力します。この呼び出しにより、部分的な文字起こし結果と、発話が終了したかどうかを示すフラグが返されます。
  4. is_endpointがtrueになったら、flush(またはflush_annotated)を呼び出して最終的な文字起こし結果を取得します。
  5. 終了時にリソースを解放します。

例 (Python)

import pvcheetah
handle = pvcheetah.create(access_key='YOUR_KEY')
while True:
    partial, is_endpoint = handle.process(get_next_frame())
    if is_endpoint:
        final = handle.flush()

READMEには、C、Swift、Java、Kotlin、Dart、JavaScript、C#などの同様のコードスニペットが記載されています。

デモとSDK

このリポジトリには、サポートされている各言語/プラットフォーム向けのすぐに実行可能なデモ(マイク入力、オーディオファイルモード)が含まれており、Maven、npm、PyPI、CocoaPods、NuGet、Pubなどのパッケージリストも提供されています。

どのような用途に適していますか?

  • オフラインでの音声コマンドやディクテーションが必要なモバイルアプリ。
  • 音声をクラウドに送信することが望ましくない組み込みデバイス(スマートスピーカー、ロボットなど)。
  • サーバーとの通信なしでデバイス内での文字起こしを実現したいWebアプリケーション。
  • 低遅延、省リソース、データプライバシーを重視するあらゆる製品。

結論: Cheetahは、デバイス内での低リソースなユースケースに焦点を当てた、本格的なプロダクショングレードの音声認識SDKであり、幅広い言語バインディングとデモコードを備えています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト