GPTとWhisperを使用してパーソナライズされた音声アシスタントを作成する

GPTとWhisperを使用してパーソナライズされた音声アシスタントを作成する

翻訳者 | 朱 仙中

レビュー | Chonglou

導入

この記事は、ユーザーの好みに合わせてシンプルでありながら強力な音声アシスタントを作成するためのガイドとして作成されています。これを実現するために、Whisper と GPT という 2 つの強力なツールを使用します。 GPT とその機能についてはすでにご存知かもしれませんが、Whisper とは何であるかご存知ですか?

実際、Whisper は OpenAI によって開発された高度な音声認識モデルであり、正確な音声からテキストへの文字起こしを提供します。

コーディング手順を含め、サンプル プロジェクトの構築の各ステップについて説明します。最後に、音声アシスタントが稼働するようになります。

準備

AI APIキーを開く

すでに OpenAI API キーをお持ちの場合は、このセクションをスキップできます。

Whisper API と GPT API の両方にアクセスするには、OpenAI API キーが必要です。固定料金が必要な ChatGPT のサブスクリプションとは異なり、API キーはサービスの使用量に基づいて支払われます。

価格はかなり手頃です。執筆時点では、Whisper の料金は 1 分あたり 0.006 ドル、GPT (モデルは GPT-3.5-turbo) の料金は 1K トークンあたり 0.002 ドルです (トークンは約 0.75 語です)。

OpenAIのウェブサイト(著者自身の画像)

キーを取得するには、まず OpenAI の Web サイトでアカウントを作成します。ログインしたら、右上隅にある自分の名前をクリックし、「API キーの表示」を選択します。 「新しい秘密鍵を作成」ボタンをクリックすると、秘密鍵が表示されます。このキーは再度表示できないため、必ず保存してください。

サンプルプロジェクトが依存するサードパーティライブラリ

このセクションでは、プロジェクトに必要なオープン ソース コード ライブラリを紹介します。この記事のサンプル プロジェクトには、OpenAI が開発した Python ライブラリを使用してさまざまな AI タスクを実行するほか、pyttsx3 を使用して音声を生成したり、SoundDevice を使用してオーディオを録音および再生したり、numpy と scipy を使用して数学演算を実行したりすることが含まれます。新しいプロジェクトを開始するときはいつも、パッケージをインストールする前に新しい仮想環境を作成する必要があります。

サンプルプロジェクトコード構造

私たちのコードは単一のクラスを中心に構築され、合計で約 90 行のコードになります。 Python クラス構文の基本的な理解があることを前提としています。クラス全体の構造は次のようになります。

Listen メソッドは、ユーザーの音声入力をキャプチャし、Whisper を使用してテキストに変換する役割を担います。 Think メソッドは、テキストを GPT に送信し、自然言語の応答を生成する役割を担います。応答テキストを再生可能なオーディオに変換する役割を担うのが、speak メソッドです。

注: 上記の画像の右端の部分は、システムの GPT アシスタント部分 (自然言語応答を提供する役割を担う) を表しています。

次のプロセスは繰り返し可能であり、ユーザーは別のリクエストを発行することで会話を継続できます。

サンプルクラスに対応するコード構造(著者自身の画像)

__init__ 関数

この関数は、履歴の初期化と API キーの設定を担当します。

以前のメッセージを追跡するには履歴が必要です。これは本質的にはアシスタントの短期記憶に対応しており、会話の前半で言ったことを記憶することができます。

聞く機能

listen関数のワークフロー

この方法は、アシスタントの耳の機能に相当します。

listen 関数を使用すると、ユーザーからの入力を受け取ることができます。この機能は、マイクからの音声を録音し、それをテキストに書き起こす役割を果たします。

listen 関数の具体的な機能は次のとおりです。

  • オーディオを録音中に「Listening...」というメッセージを出力します。
  • サウンド デバイスを使用して、44100 Hz のサンプリング レートで 3 秒間 (または任意の長さ) のオーディオを録音します。
  • 録音したオーディオを NumPy 配列として一時 WAV ファイルに保存します。
  • OpenAI API の文字起こしメソッドを使用して、音声を Whisper に送信し、文字起こしを行います。
  • 転記が成功したことを確認するために、転記されたテキストをコンソールに出力します。
  • 転記されたテキストを文字列として返します。

この例では、アシスタントは 3 秒間聞き取りますが、必要に応じてその時間を変更できます。

思考機能

機能ワークフローを考える

実際、私たちのシステムのアシスタントの頭脳は GPT によって駆動されています。思考機能は、アシスタントが聞いた内容を受け取り、応答を詳しく説明する役割を担います。

応答コンテンツはローカル マシン上に作成されないことに注意することが重要です。テキストは、API 経由で処理するために OpenAI のサーバーに送信する必要があります。応答の内容は応答変数に保存され、ユーザー メッセージと応答の両方が履歴に追加されます。履歴はアシスタントの短期メモリであり、GPT モデルが応答を生成するためのコンテキストを提供する役割を果たします。

話す機能

話す機能のワークフロー

音声関数は、テキストを音声に変換し、ユーザーに対して再生する役割を担います。この関数は、テキストという 1 つのパラメータのみを受け入れます。このパラメータは、音声に変換するテキストを表す文字列である必要があります。

関数がテキスト文字列を引数として呼び出されると、コマンド engine=pyttsx3.init() を使用して pyttsx3 音声エンジンが初期化されます。このオブジェクトは、エンジンがテキストを音声に変換するために使用するメイン インターフェースです。

次に、この関数は、コマンド エンジンを使用して、提供されたテキストを音声に変換するように音声エンジンに指示します。これにより、提供されたテキストがキューに入れられ、読み上げられます(エンジンによって読み上げられます)。コマンド engine.runAndWait は、キューに入れられたコマンドを処理するようにエンジンに指示する役割を担います。

Pyttsx3 はすべてのテキストから音声への変換をローカルで処理する点に注目する価値があります。これは、システム遅延の点で大きな利点です。

最後の仕上げ

この時点で、システムのアシスタント部分は準備完了です。次に、ヘルパー オブジェクトを作成して会話を開始するだけです。

会話は無限ループとなり、ユーザーが「さようなら」を含む文を言うと終了します。

パーソナライズされた体験のヒント

全体的に、GPT アシスタントのカスタマイズは簡単です。私たちが構築したコードは非常にモジュール化されており、さまざまな機能を追加してカスタマイズできます。カスタマイズに役立つアイデアをいくつか紹介します。

  • アシスタントに役割を与える: 元のプロンプトを変更して、アシスタントに英語の先生、モチベーションスピーカー、またはあなたが思いつく他の役割を演じてもらいます。その他のアイデアについては、「Awesome ChatGPT Prompts」をご覧ください。
  • 言語の変更: 別の言語を使用しますか?問題ない!コード内の英語を希望の言語に変更するだけです。
  • アプリの構築: アシスタントをあらゆるアプリケーションに簡単に統合できます。
  • 個性を追加: カスタム応答を追加したり、さまざまなトーンや言語スタイルを使用したりすることで、アシスタントに独自の個性を与えます。
  • 他の API との統合: アシスタントを他の API と統合して、天気予報やニュースの更新などのより高度な機能を提供します。

結論は

この投稿では、OpenAI API キーを取得する方法について説明し、ユーザー入力をキャプチャし、応答を生成し、テキストを音声に変換して再生するために使用される listen、think、speak 関数のコード例を示しました。

この知識があれば、自分の特定のニーズに合った独自の音声アシスタントの作成を開始できます。全体として、日常のタスクを支援するパーソナル アシスタントの作成から音声制御の自動化システムの構築まで、可能性は無限です。この記事の例のすべてのコードについては、リンクされた GitHub リポジトリを参照してください。

翻訳者紹介

Zhu Xianzhong 氏は、51CTO のコミュニティ エディターであり、51CTO の専門ブロガー兼講師であり、濰坊の大学のコンピューター教師であり、フリーランス プログラミング コミュニティのベテランです。

原題: GPT と Whisper を使用したパーソナライズされた音声アシスタントの作成、著者: Donato Riccio

<<:  イタリア首相がマスク氏と会談、AIや出生率などを議論

>>:  AIは自動車でも加速しており、メルセデス・ベンツは車載音声アシスタントをChatGPTチャットボットに接続すると発表した。

ブログ    

推薦する

企業がAIベースのツールを使用して脆弱性を管理する方法

脆弱性の管理は、セキュリティ専門家にとって最優先事項の 1 つです。セキュリティ チームは、サイバー...

...

...

Google の最も強力な NLP モデル BERT はなぜこれほどクールで強力なのでしょうか?テンセントのプログラマーが最初から教えてくれる

1. 背景検索シナリオでは、ユーザーの検索クエリと思い出された記事のタイトルとの関連性は、ユーザーの...

...

...

写真から3Dモデルを生成、GANとオートエンコーダが衝突して奇跡を起こす

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

人工知能の発展は私たちの生活にどのような影響を与えるのでしょうか?

防疫期間中の電子温度測定ドアから、宅配業界で使用されているドローンやロボットによる仕分け、私たちがよ...

人類の未来における人工知能の重要性

人工知能(AI)は私たちが住む世界を急速に変えています。医療から金融まで、人工知能は産業を変革し、私...

Java 仮想マシンの詳細な説明 ---- GC アルゴリズムとタイプ

この記事の主な内容: GCの概念GCアルゴリズム参照カウント方式(循環参照の問題を解決できず、Jav...

企業は生成AIのオープンソース化のリスクとメリットを検討

EmTech MIT では、専門家が、生成 AI モデルのオープンソース化の長所と短所を含め、企業で...

AWS が Amazon SageMaker の 9 つの新機能をリリース

12 月 9 日、Amazon Cloud Service (AWS) が開催する年次イベント AW...

今日の人工知能はすでに販売業界に混乱をもたらしている

人工知能と機械学習は現在では導入が容易であり、現在実行されている反復的なタスクやプロセスの多くを自動...

もう学べないの? MIT CSおよびEEオンラインコースが利用可能になりました

[[320783]]流行病のため、MIT学長は3月初旬に残りの授業をすべてオンラインに移行するという...