翻訳者 | 朱 仙中 レビュー | 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 関数の具体的な機能は次のとおりです。
この例では、アシスタントは 3 秒間聞き取りますが、必要に応じてその時間を変更できます。 思考機能機能ワークフローを考える 実際、私たちのシステムのアシスタントの頭脳は GPT によって駆動されています。思考機能は、アシスタントが聞いた内容を受け取り、応答を詳しく説明する役割を担います。 応答コンテンツはローカル マシン上に作成されないことに注意することが重要です。テキストは、API 経由で処理するために OpenAI のサーバーに送信する必要があります。応答の内容は応答変数に保存され、ユーザー メッセージと応答の両方が履歴に追加されます。履歴はアシスタントの短期メモリであり、GPT モデルが応答を生成するためのコンテキストを提供する役割を果たします。 話す機能話す機能のワークフロー 音声関数は、テキストを音声に変換し、ユーザーに対して再生する役割を担います。この関数は、テキストという 1 つのパラメータのみを受け入れます。このパラメータは、音声に変換するテキストを表す文字列である必要があります。 関数がテキスト文字列を引数として呼び出されると、コマンド engine=pyttsx3.init() を使用して pyttsx3 音声エンジンが初期化されます。このオブジェクトは、エンジンがテキストを音声に変換するために使用するメイン インターフェースです。 次に、この関数は、コマンド エンジンを使用して、提供されたテキストを音声に変換するように音声エンジンに指示します。これにより、提供されたテキストがキューに入れられ、読み上げられます(エンジンによって読み上げられます)。コマンド engine.runAndWait は、キューに入れられたコマンドを処理するようにエンジンに指示する役割を担います。 Pyttsx3 はすべてのテキストから音声への変換をローカルで処理する点に注目する価値があります。これは、システム遅延の点で大きな利点です。 最後の仕上げこの時点で、システムのアシスタント部分は準備完了です。次に、ヘルパー オブジェクトを作成して会話を開始するだけです。 会話は無限ループとなり、ユーザーが「さようなら」を含む文を言うと終了します。 パーソナライズされた体験のヒント全体的に、GPT アシスタントのカスタマイズは簡単です。私たちが構築したコードは非常にモジュール化されており、さまざまな機能を追加してカスタマイズできます。カスタマイズに役立つアイデアをいくつか紹介します。
結論はこの投稿では、OpenAI API キーを取得する方法について説明し、ユーザー入力をキャプチャし、応答を生成し、テキストを音声に変換して再生するために使用される listen、think、speak 関数のコード例を示しました。 この知識があれば、自分の特定のニーズに合った独自の音声アシスタントの作成を開始できます。全体として、日常のタスクを支援するパーソナル アシスタントの作成から音声制御の自動化システムの構築まで、可能性は無限です。この記事の例のすべてのコードについては、リンクされた GitHub リポジトリを参照してください。 翻訳者紹介Zhu Xianzhong 氏は、51CTO のコミュニティ エディターであり、51CTO の専門ブロガー兼講師であり、濰坊の大学のコンピューター教師であり、フリーランス プログラミング コミュニティのベテランです。 原題: GPT と Whisper を使用したパーソナライズされた音声アシスタントの作成、著者: Donato Riccio |
<<: イタリア首相がマスク氏と会談、AIや出生率などを議論
>>: AIは自動車でも加速しており、メルセデス・ベンツは車載音声アシスタントをChatGPTチャットボットに接続すると発表した。
ロボットは製造業の「至宝」とみなされています。近年、人口ボーナスの継続的な減少と自動化生産の需要の継...
今日、ますます多くのサーバーベンダーが、人工知能を活用したサーバー自動化テクノロジーの開発に取り組ん...
[[382731]]この記事は、劉宇、趙紅宇らが執筆したWeChatパブリックアカウント「ビッグデー...
人工知能は過去1年間で大きな進歩を遂げ、人々にますます多くの利益をもたらしました。将来的には、マシン...
ソートアルゴリズム平均時間計算量バブルソート (n2) 選択ソート (n2) 挿入ソート (n2) ...
会話エージェントから検索クエリまで、自然言語理解 (NLP) は今日の最もエキサイティングなテクノロ...
[51CTO.com からのオリジナル記事] データは今最もホットなものです。当時は「紙は洛陽と同...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
人工知能ツールによって特定された、火星の最新のクレーター群の高解像度画像。画像出典: Space.c...
[[265622]]ビッグデータダイジェスト制作著者: リン・アナン、周素雲AI 人材の需要が高まる...
手書き模倣AIの研究背景諺にあるように、人の筆跡はその人の性格を表す。硬い印刷フォントと比較すると、...