これは、next.jsを使用して、自動音声認識(ASR)システムであるOpenai WhisperのサンプルWebApp実装です。
オーディオデータを自動的に記録し、オーディオデータをサーバーにアップロードして転写/翻訳し、結果をフロントエンドに送り返します。また、録画されたオーディオを再生して出力を確認することもできます。
更新:実験機能を有効にして
Next 13使用する場合(AppDir)、代わりにOpenai-Whisper-APIを確認してください。フラグを設定して、ささやきのAPIの代わりにささやきPythonモジュールを使用します。
OpenAI Speechを使用してAPIにテキストを送信して、Openai-Whisper-APIを確認してください
Whisperを使用してVoice-Chatアプリを探している場合は、Openai-Whisper-Talkを確認してください。
Nuxt.jsバージョンについては、openai-chatterboxを確認してください。
Whisper自体は、リアルタイムのストリーミングタスク自体をサポートするように設計されていないと言われていますが、それは私たちが試してみることができないという意味ではありません。
したがって、このプロジェクトは、Openai Whisperを使用して、ほぼリアルタイムのTrancriber Webアプリケーションを作成しようとする私の試みです。その有効性は、サーバーがオーディオを転写/翻訳する速度に依存します。
Next.jsを使用して、個別のバックエンドとフロントエンドアプリを作成する必要がないようにしました。
バックエンドについては、 execを使用して、 Whisperを呼び出すシェルコマンドを実行しました。 node.jsモジュールとしてimport方法はまだ見つかりませんでした。 importのすべての例は、 pythonサーバーを使用しているようです。
import { exec } from 'child_process'
exec ( `whisper './ ${ filename } ' --model tiny --language Japanese --task translate` , ( err , stdout , stderr ) => {
if ( err ) {
console . log ( err )
} else {
console . log ( stdout )
console . log ( stderr )
}
} ) tinyモデルを使用して、非常に高速な転写タスクを実行していることに注意してください。これは私のシステムがすべて処理できるすべてです。

以前のバージョンからアプリの動作を変更しました。以前は、アプリは、デフォルトで5秒で、ある時間間隔でオーディオデータを継続的に記録します。現在、音を検出できる場合にのみ録音を開始します。
オーディオキャプチャをトリガーすることでバックグラウンドノイズを排除するためのしきい値設定があります。デフォルトでは、 -45dBに設定されています(0dBは最も大きな音です)。ニーズに応じて、より低いまたはそれ以上に設定する場合は、 Settingsで可変minDecibelsを調整します。
通常の人間の会話では、各文の間に平均して約2秒間一時停止する傾向があると言われています。これを念頭に置いて、音が2秒以上検出されない場合、録音が停止し、オーディオデータがバックエンドに送信され、転写されます。これは、デフォルトでは2500msに設定されているmaxPauseの値を編集することで変更できます。

アップロードされたオーディオを再生し、期間が表示されてからテキスト出力に従うことができます。
コード自体については、開発中にフックを使用してstate variablesにアクセスするのが難しいので、 class component (私は知っている、知っている...)を使用しました。

minDecibelsとmaxPauseのほかに、 Settingsダイアログからlanguage 、 model 、 taskなどのいくつかのWhisperオプションを変更することもできます。オプションの説明については、WhisperのGitHubリポジトリを確認してください。
まだやることがたくさんありますので、このプロジェクトはまだ進行中の作業です...
まず、 WhisperとそのPython依存関係をインストールする必要があります
$ pip install git+https://github.com/openai/whisper.gitまた、システムにffmpegをインストールする必要があります
# macos
$ brew install ffmpeg
# windows using chocolatey
$ choco install ffmpeg
# windows using scoop
$ scoop install ffmpegこの時までに、コマンドラインを使用してWhisperをテストできます
$ whisper myaudiofile.ogg --language Japanese --task translateそれが成功した場合は、このアプリをインストールすることができます。
リポジトリをクローンし、依存関係をインストールします
$ git clone https://github.com/supershaneski/openai-whisper.git myproject
$ cd myproject
$ npm install
$ npm run devブラウザをhttp://localhost:3006/に開き、アプリケーションページを読み込みます。
httpsプロトコルを使用してこのアプリを実行することをお勧めします。これは、オーディオキャプチャに別のデバイスを使用し、マシンをサーバーとして使用する場合に必要です。
そうするために、適切なcertificateとkeyファイルを準備し、ルートディレクトリでserver.jsを編集します。
その後、実行します
$ node server.js次に、ブラウザをhttps://localhost:3006/に開き、ページを読み込みます。