ChatGPTは、2022年11月にOpenAIが公開した人工知能チャットボットです。人工知能は、過去にも数多く登場していましたが、ChatGPTは次のふたつの点において画期的でした。
・それまでの人工知能とは一線を画す自然な会話を可能にした
・チャットという、誰でも利用できるインターフェースで一般に提供された
社会に与えた影響という点では、後者の与えたインパクトが特に大きかったといえます。ChatGPT公開以前に作られたGPT-2の段階でも、かなり高度な自然言語を生成できるようになっていましたが、一般的な知名度はさほど高くありませんでした。誰でも簡単に利用できるチャットというインターフェースを与えられ、誰もがそのすごさを実感できるようになったことで、一気に知名度が上がって人々の話題に上るようになったのです。
そして、ChatGPTの登場から1年後の2023年11月には、大規模なアップデートが行われました。GPT-4-Turboが登場し、コンテキスト長が大幅に拡大されたほか、画像を認識できる視覚機能も追加されました。また、音声合成APIやAIアシスタントAPIも追加されました。ほかにも、コーディング不要でChatGPTをカスタマイズできるGPTsや、GPT-4のファインチューニングなど、さまざまな機能が発表され、大きな話題となりました。今後も、OpenAIの動向から目が離せません。
ChatGPTはとても便利ですが、日常的に利用している人は数パーセントしかいないそうです。テキストベースのインターフェースでは、入力がボトルネックになりがちです。そこで、音声インターフェースを追加することで、より多くの人に利用してもらえるのではないかと考えました。スマートフォンのChatGPT公式アプリは、音声入力にも対応していますが、そのままでは自分のプロダクトに組み込んで使うことはできません。本書では、ChatGPTに音声インターフェースを追加するためのアプローチとして、3つの方法を説明します。
1.OpenAIのAPIを利用して、音声認識と音声合成を実現する方法
2.Google Chromeの機能を利用して、音声認識と音声合成を実現する方法
3.Alexaの機能を利用して、音声認識と音声合成を実現する方法
ひとつ目は、MacやWindows上でPythonプログラムを動かし、OpenAIのAPIのみを利用してChatGPTとの音声対話を実現する方法です。基本的な方法ですが、さまざまな応用が可能です。ふたつ目は、ブラウザーのGoogle Chromeに実装された音声認識、音声合成機能を利用する方法です。ブラウザーさえあれば動くので、非常に手軽に実現できます。Webアプリケーションに組み込む際の参考にもなるかもしれません。3つ目は、独自のAlexaスキルを作成して、AlexaにChatGPTを組み込む方法です。「アレクサ、音声チャットを開始」などと呼びかけるだけでChatGPTと会話できるようになるため、非常に実用的です。
本書は3章構成になっています。各章は独立しているので、興味のある章だけ読んでいただいても構いません。
・1章 MacやWindowsのローカル環境でChatGPTと音声対話する
・2章 Google Chromeで音声認識と音声合成を行う
・3章 ChatGPTと音声対話できるAlexaスキルを作る
1章と3章は、プログラミング言語にPythonを用いています。2章は、JavaScriptを用いています。
3章で作成するAlexaスキルは、公開を目的としたものではありません。OpenAIのAPI呼び出しに制限を設けていないため、そのまま公開すると第三者に無制限に利用されるおそれがあります。作成したAlexaスキルは一般公開せず、ご自身のAmazonアカウントのみでご利用ください。
本書の対象読者は、ChatGPTを活用したプログラムを自分で動かしてみたいと考えている、すべての方々です。プログラミングの経験がなくても動かせるように、環境構築方法を丁寧に解説しています。
GitHubにサンプルコードを用意しました。
https://github.com/sikkimtemi/voice-interactive-chatbot
本書に記載されたソースコードは、すべてこちらからダウンロード可能です。
本書のサンプルコードを動かすには、OpenAIのAPIキーが必要です。APIキーの取得方法は次のとおりです。まず、OpenAIのアカウント登録をしましょう。登録するには、次のURLにアクセスしてください。
https://platform.openai.com/account/api-keys
認証画面が表示されたら「Sign up」をクリックしてください。登録画面が表示されます。
登録は、メールアドレスとパスワードのほか、GoogleアカウントやMicrosoftアカウント、Appleのアカウントでも可能です。
登録が完了すると、APIキーを取得できます。「Create new secret key」をクリックすると、APIキーが表示されます。APIキーは初回しか表示されないため、安全な場所にメモしておくとよいでしょう。ただし、APIキーは秘密にしてください。APIキーが漏洩すると、第三者にアカウントを不正利用される可能性があります。なお、APIキーは削除や再発行が可能です。
試用期間終了後もAPIを継続して利用するには、クレジットカード等の登録が必要です。「Billing → Overview」で「Set up paid account」をクリックすると、支払い方法を登録できます。画面の指示にしたがってクレジットカード等を登録してください。
本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。
本書に登場するシステム名や製品名は、関係各社の商標または登録商標です。また本書では™や©、®といったマークは省略しています。
本章では、MacやWindows上でPythonプログラムを動かし、ChatGPTと音声で対話する方法を説明します。音声対話の実現には、音声認識、テキスト生成、音声合成という3つの過程が必要です。本章では3つの過程すべてにおいて、OpenAIのAPIを利用します。これは基本的で応用の利く技術です。それでは、開発環境の構築から始めましょう。
ここでは、Mac上でPythonの開発環境を構築する方法を説明します。Windowsの場合は、次の節を参照してください。Pythonの開発環境を構築済みの方は、この節と次の節を飛ばしてください。
これからMacにPythonをインストールしますが、その前にHomebrewをインストールする必要があります。Homebrewは、Macでソフトウェアをインストールするためのパッケージ管理システムです。Homebrewを使うことで、ソフトウェアのインストールやアンインストールが簡単に行えるようになります。
まず、Homebrewのホームページ(次のURL)にアクセスしてください。
https://brew.sh/index_ja
「インストール」という文字の下にあるコマンドをコピーしてください。コマンドの右側のアイコンをクリックしてもコピーできます。おそらく、次のようなコマンドがコピーされるはずです。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
次に、ターミナルを起動し、先ほどコピーしたコマンドを貼り付けてください。
Enterキーを押すと、Homebrewのインストールが始まります。途中でパスワードを求められるので、Macのパスワードを入力してください。
Apple Siliconが搭載されたMacの場合、Homebrewのインストールが完了したら、次のコマンドを入力してください。Apple SiliconとはAppleが開発したCPUのことで、M1やM2といった名前が付けられています。
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ユーザー名/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
その際、「ユーザー名」は、ご自身のユーザー名に置き換えてください。ご自身のユーザー名は、ターミナルでwhoamiと入力すると確認できます。Homebrewのインストールログの最後に、次のようなメッセージが表示されているので、そこからコピーしてもOKです。
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ユーザー名/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
https://docs.brew.sh
IntelのCPUが搭載されたモデルでは、このメッセージは表示されません。また、上記のコマンドを入力する必要もありません。
Homebrewのインストールが完了したら、確認のため、次のコマンドを入力してください。
brew -v
Homebrewのバージョンが表示されれば、インストールは成功です。
次は、Homebrewを使ってPythonをインストールします。ターミナルで次のコマンドを入力してください。
brew install python3
Apple Siliconが搭載されたMacの場合は、パスが通っていない/opt/homebrew/binディレクトリーにPythonがインストールされるので、パスを通す必要があります。それには、次のコマンドを入力してください。
echo 'export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"' >> ~/.zprofile
一方、IntelのCPUが搭載されているモデルでは、すでにパスが通っている/usr/local/binディレクトリーにPythonがインストールされるため、このコマンドを入力する必要はありません。
Pythonのインストールが完了したら、ターミナルをいったん閉じて開き直してから、次のコマンドを入力してください。
which python3
Apple Siliconが搭載されたMacの場合、/opt/homebrew/bin/python3と表示されればOKです。IntelのCPUが搭載されたMacの場合、/usr/local/bin/python3と表示されればOKです。
念のため、バージョンも確認しておきましょう。
python3 -V
筆者の環境では3.11.6がインストールされていました。これより新しいバージョンがインストールされていても、問題はありません。
次は、VSCodeをインストールします。VSCodeは、Microsoftが開発したオープンソースのテキストエディターです。Pythonだけでなく、さまざまな開発の現場で使われている、人気のあるエディターです。ちなみに、本書の執筆もVSCodeで行っています。
VSCodeのダウンロードページ(次のURL)にアクセスしてください。
https://code.visualstudio.com/download
Appleのロゴの下にある、Macと書かれたボタンをクリックすると、Zipファイルのダウンロードが始まります。ダウンロードが完了したら、Zipファイルをダブルクリックして解凍してください。Visual Studio Code.appというアプリケーションができるので、アプリケーションフォルダーに移動してください。
VSCodeをはじめて起動する際には、「"Visual Studio Code.app"はインターネットからダウンロードされたアプリケーションです。開いてもよろしいですか?」というメッセージが表示されます。このまま「開く」をクリックしてください。
次は、日本語環境を設定しましょう。左側に並んだアイコンの中からExtensionsをクリックしてください。検索窓にjapaneseと入力すると、Japanese Language Pack for Visual Studio Codeという拡張機能が表示されるので、それをクリックしてください。右側に表示されるInstallボタンをクリックすると、拡張機能がインストールされます。インストールが完了したら、Reloadボタンをクリックしてください。VSCodeが再起動し、メニューが日本語になれば設定完了です。
次は、Python拡張機能をインストールします。左側に並んだアイコンの中から拡張機能をクリックしてください。先ほどまではExtensionsでしたが、日本語環境を設定したので、拡張機能という表示に変わっているはずです。検索窓にpythonと入力すると、Pythonという拡張機能が表示されるので、それをクリックしてください。右側に表示されるInstallボタンをクリックすると、拡張機能がインストールされます。
メニューから「表示」を選択し、「コマンドパレット」をクリックしてください。コマンドパレットが表示されたら、shellと入力します。Shell Command: Install 'code' command in PATHという項目が表示されるので、それをクリックしてください。
これで、VSCodeをターミナルからも起動できるようになりました。いったんVSCodeとターミナルを閉じてから、ターミナルで次のコマンドを入力してください。
code .
VSCodeが起動すれば成功です。
次は、開発用のディレクトリーを作成します。ターミナルで次のコマンドを入力してください。
cd
mkdir devel
まず、cdコマンドを実行し、ホームディレクトリーに移動します。次に、develという名前の開発用ディレクトリーを作成します。ディレクトリー名はお好きなものに変更していただいて構いません。それでは、ディレクトリーができたか確認してみましょう。次のコマンドを入力してください。
ls
develというディレクトリーが表示されればOKです。
まず、本書のサポートページ(次のURL)にアクセスしてください。
https://github.com/sikkimtemi/voice-interactive-chatbot
右側のCodeという緑色のボタンをクリックして、HTTPSのURLをコピーしてください。
次に、ターミナルで先ほど作成したdevelディレクトリーに移動しましょう。次のコマンドを入力してください。
cd devel
次に、サンプルコードをダウンロードするため、git cloneコマンドを入力します。次のコマンドを入力してください。
git clone https://github.com/sikkimtemi/voice-interactive-chatbot.git
git cloneの後ろには、先ほどコピーしたURLをペーストします。ダウンロードが完了したら、次のコマンドを入力してください。
ls
voice-interactive-chatbotというディレクトリーが表示されればOKです。次は、VSCodeでダウンロードしたサンプルコードを開きましょう。先ほど設定したので、VSCodeはターミナルから起動できます。次のコマンドを入力してください。
cd voice-interactive-chatbot
code .
これで、VSCodeが起動し、サンプルコードが表示されます。
本書では、venvという仮想環境を使って開発を進めます。venvを使うと、プロジェクトごとに環境を分けることができるので、他のプロジェクトに影響を与えることなく開発を進めることができます。voice-interactive-chatbotディレクトリーで、次のコマンドを入力してください。
python3 -m venv venv
すると、venvというディレクトリーが作成されます。つづいて、次のコマンドを入力してください。
source ./venv/bin/activate
すると、ターミナルの先頭に(venv)という文字が表示されます。これは、現在venvが有効になっていることを示しています。この状態で、次のコマンドを入力してください。
which python
/Users/ユーザー名/devel/voice-interactive-chatbot/venv/bin/pythonと表示されればOKです。このように、venvを有効にすると、Pythonの実行ファイルがvenvのディレクトリーに変わります。
ここで、いったんVSCodeを終了してください。次に、venvが有効になったターミナルからVSCodeを再度起動しましょう。ターミナルから次のコマンドを入力してください。
code .
VSCodeが起動したら、右下に表示されているPythonの隣りにあるバージョン番号をクリックしてください。「インタープリターの選択」が表示されるので、Python 3.xx.x('venv':venv)を選択してください。最終的に次の図のようになればOKです。なお、Pythonのバージョンは筆者の環境とは異なる可能性があります。
最後に、必要なライブラリーをインストールしましょう。ターミナルで次のコマンドを入力してください。
cd Chapter1
pip install -r requirements.txt
これで、開発環境の準備は完了です。
あまり意識することはないかもしれませんが、macOSはUNIXの一種です。UNIXは長い歴史をもつOSで、基本的にコマンドベースで操作します。UNIXコマンドは、最初は覚えるのが難しいかもしれませんが、一度覚えてしまえば10年後でも使える、息の長いスキルです。覚えておいて損はありません。
Macでは、ターミナルからUNIXコマンドを使うことができます。ここでは、筆者がよく使うUNIXコマンドをいくつか紹介します。
・ls:ディレクトリーの中身を表示する
・cd:ディレクトリーを移動する
・pwd:現在のディレクトリーを表示する
・mkdir:ディレクトリーを作成する
・rm:ファイルを削除する
・cp:ファイルをコピーする
・mv:ファイルを移動する
・cat:ファイルの中身を表示する
lsは、隠しファイルも表示する-aオプションと、ファイルの詳細情報を表示する-lオプションを組み合わせて使うことも多いです。これらのオプションも覚えておくと便利です。なお、UNIXではフォルダーのことをディレクトリーと呼びます。
ディレクトリーを移動するときは、cdコマンドを使います。たとえば、Documentsというディレクトリーに移動するには、次のように入力します。
cd Documents
ひとつ上の階層に戻るときは、cd ..と入力します。ここで、「..」はひとつ上の階層を表します。一方、現在いるディレクトリーは、「.」で表されます。現在いるディレクトリーの絶対パスを表示するには、pwdコマンドを使います。慣れてくると、cdやls、pwdを駆使して、ディレクトリーを自在に移動できるようになります。
UNIXコマンドは、ほかにもたくさん存在しますが、本書の範囲内であれば、ここで紹介したコマンドを覚えておくだけで十分です。
ここでは、Windows 11上でPythonの開発環境を構築する方法を説明します。Macの場合は、前節を参照してください。Pythonの開発環境を構築済みの方は、この節を飛ばしてください。
Microsoft StoreでPythonを検索してください。画面キャプチャのバージョンは3.10ですが、最新版を選択してインストールしてください。
Microsoft StoreでVSCodeを検索し、インストールしてください。
VSCodeを起動し、左側に並んだアイコンの中から拡張機能(Extensions)をクリックしてください。検索窓に「japanese」と入力し、日本語の拡張機能をインストールしてください。インストールが完了すると、右下に「Change Language and Restart」というボタンが表示されるので、クリックしてください。VSCodeが再起動し、メニューが日本語表示になります。
拡張機能で「python」と入力し、Python拡張機能をインストールしてください。
Git for Windowsのサイト(https://gitforwindows.org/)からインストーラーをダウンロードし、インストールしてください。
インストーラーの設定はすべてデフォルトのままで構いません。
スタートボタンを右クリックして、「Windowsターミナル」を選択してください。
次のコマンドを入力して、開発用のディレクトリーを作成してください。ここでは、ディレクトリー名を「devel」としていますが、任意の名前で構いません。
mkdir devel
次のコマンドを入力して、サンプルコードをダウンロードしてください。
cd devel
git clone https://github.com/sikkimtemi/voice-interactive-chatbot.git
ターミナルのタブの右側にあるアイコンをクリックして、コマンドプロンプトを起動してください。デフォルトのPowerShellでは、venvのアクティベートスクリプトを実行するのに手間がかかるため、コマンドプロンプトを使用します。
コマンドプロンプトで次のコマンドを入力して、venvを設定してください。
cd devel
cd voice-interactive-chatbot
python -m venv venv
cd venv/Scripts
activate.bat
続いて、次のコマンドを入力して、必要なライブラリーをインストールしてください。
cd ../../Chapter1
pip install -r requirements.txt
VSCodeが起動していたら、いったん終了し、コマンドプロンプトで次のコマンドを入力してください。
code .
VSCodeが起動したら、右下のPythonのバージョンを確認してください。3.xx.x('venv':venv)のように表示されていれば、変更の必要はありません。venvの表記がない場合は、Pythonのバージョンをクリックして、「インタープリターの選択」でvenvを選択してください。これで、環境構築は完了です。
本書のサンプルプログラムを動かすには、OpenAIのAPIキーが必要です。APIキーの取得方法は「はじめに」を参照してください。APIキーを取得したら、次のコマンドを入力して、環境変数に設定してください。
export OPENAI_API_KEY=your-api-key
your-api-keyは実際のAPIキーで置き換えてください。Windows環境の場合は、コマンドプロンプトでset OPENAI_API_KEY=your-api-keyと入力してください。