古い電話機がいくつかあるのですが、完全に使えるものはほとんどありません。そのうちの1台を捨てようと思っていたところ、内部配線をRaspberry Piに交換すればGoogleアシスタントが使えることに気づいたんです。
確かに部屋の向こうから「OK Google」と呼びかける方が簡単ですが、電話を手に取って質問すれば、すぐに返事が返ってくるのも楽しいものです。Raspberry Pi Zeroを使って、古い回転式電話にGoogleアシスタントをインストールする方法をご紹介します。
古いスマホをGoogleアシスタントにするために必要なもの
- はんだ付けされたGPIOピンを備えたRaspberry Pi Zero、メモリカード(Raspberry Pi OSがインストールされている)、および電源アダプター
- 壊れても構わない、機能する受話器(スピーカーとマイク)とフックスイッチを備えた古い電話
- メスのジャンパーケーブル、ワイヤーストリッパー、絶縁テープまたははんだ
- お使いの携帯電話に応じて、いくつかの種類のドライバー
- Linuxと互換性のあるUSBオーディオアダプタ1個
- 3.5mm オス-オスオーディオケーブル 1 本
- Raspberry Pi Zero マイクロUSB - USB Aメスアダプタ 1個
古い携帯電話にGoogleアシスタントをインストールする方法
このRaspberry Pi プロジェクトは非常に大規模で、時間がかかる可能性があるため、4 つの異なる部分に分割しました。
- Googleに登録する
- Googleで認証する
- 電話の配線
- アシスタントの設定
Googleに登録する
Raspberry PiをGoogleアシスタントとして使用する前に、デバイスをGoogleに登録する必要があります。Google Cloud Platformを使ったことがない方は少し戸惑うかもしれませんが、手順は意外と簡単です。
1.このリポジトリを Raspberry Pi にクローンします。
cd ~/
git clone https://github.com/rydercalmdown/google_assistant_telephone
2.ブラウザでhttps://console.actions.google.comにアクセスします。このサイトでは、Google アシスタント アクションの管理や、カスタム Google アシスタント デバイスの登録が可能です。
3. 「新しいプロジェクト」をクリックし、必要な情報を入力します。名前は何でも構いません。覚えやすい名前を選んでください。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
4. 新しいタブでGoogle Cloud Platformへのリンクにアクセスし、先ほど作成したプロジェクト名が上部のバーに表示されていることを確認します。表示されていない場合は、プロジェクト名を選択します。「有効にする」ボタンをクリックしてAPIを有効にします。
5. 元のタブでページの一番下までスクロールし、「デバイス登録をお探しですか?こちらをクリックしてください」をクリックします。
6. 次のページで、「モデルの登録」をクリックします。
7.必要な情報を入力し、モデル ID をファイルにコピーします。この ID は後で必要になります。
8. 「OAuth 2.0 認証情報のダウンロード」をクリックして、Raspberry Pi がリクエストを行うために使用する認証情報ファイルをダウンロードします。
9.ダウンロードしたファイルの名前を oauth_config_credentials.jsonに変更し、Pi に転送します。手順 1 でクローンしたリポジトリフォルダに配置します。
# Rename your downloaded file
cd ~/Downloads
mv your_unique_secret_file_name.json oauth_config_credentials.json
# Move the file into your repository
scp oauth_config_credentials.json pi@your_pis_ip_address:/home/pi/google_assistant_telephone
10. ブラウザに戻り、資格情報をダウンロードして名前を変更した後、「次へ」ボタンをクリックします。
11.「特性の指定」タブで、設定を調整せずに「特性を保存」をクリックしてセットアップを完了します。
Googleで認証する
これでデバイスがGoogleに登録されました。次は、このデバイスを認証して、Googleアカウントとパーソナライズされたアシスタントにアクセスできるようにします。
1. https://console.cloud.google.com/apis/credentials/consentに移動し、プロジェクトが「Google への登録」の手順 3 で決定した名前と一致していることを確認します。
2. 「外部」を選択し、「作成」ボタンをクリックします。
3.アプリ名を入力します。繰り返しますが、これは特に重要なことではありませんが、シンプルにするために、以前と同じ名前にしました。
4. 「ユーザーサポートメール」のドロップダウンからメールアドレスを選択してください。これは、アプリのユーザーから連絡があった場合に備えて用意するものですが、アプリは公開しないのでご安心ください。
5. 「開発者の連絡先情報」の下に同じメールアドレスを追加し、「保存して続行」をクリックします。
6. 次のページで、「スコープの追加または削除」をクリックして、スコープ サイドバーを表示します。
7.検索バーで「Google Assistant API」を検索し、 /auth/assistant-sdk-prototype スコープにチェックを入れます。「update」をクリックし、ページ下部の「Save and Continue」をクリックします。
8. 次のページで、「保存して続行」をクリックしてオプション情報をスキップします。
9. セットアップが完了したら、サイドバーの「OAuth 同意画面」をクリックしてページを更新し、「テスト ユーザー」の下にある「ユーザーの追加」をクリックします。
10. Google アカウントのメールアドレスを追加し、「保存」をクリックします。
11. 次に、Pi でダウンロードしたリポジトリに移動し、次のコマンドを実行します。
cd ~/google_assistant_telephone
make authenticate
12. 表示されるリンクにアクセスし、ブラウザで認証プロセスを完了します。プロセスが完了したら、コードをコピーしてターミナルに貼り付けます。
13. 成功すると、「認証情報が保存されました」というメッセージと、認証情報へのパスが表示されます。このパスを使用して、認証情報を現在のディレクトリに移動します。これらの認証情報をリポジトリのルートディレクトリに転送します 。
# credentials saved: /Users/test/Library/Application Support/google-oauthlib-tool/credentials.json
mv /Users/test/Library/Application\ Support/google-oauthlib-tool/credentials.json /home/pi/google/assistant/telephone/credentials.json
Raspberry Piで回転式電話機を配線する
お使いのダイヤル式電話機によって、この手順は大きく異なります。これは私が使用した手順ですが、おそらくかなりの試行錯誤が必要になるでしょう。この手順を実行すると正常に動作しなくなるため、大切にしていない電話機を使用するようにしてください。
1.電話機のカバーを外します。底面のネジを緩める必要があるかもしれません。
2.フックスイッチに接続されている配線を見つけて被覆を剥がします。これらの配線をRaspberry PiのGPIOピンに接続し、受信機が持ち上げられたか置かれたかを確認します。
3.フックスイッチの配線をGPIOボードのピン18とアースに接続します。接続を容易にするために、フックスイッチからの配線をジャンパー線に半田付けする必要がある場合があります。または、絶縁テープでまとめて固定することもできます。
4. USBオーディオアダプターをRaspberry Pi Zeroに接続します。このためには、USB-Micro-USB-Aメスアダプターが必要です。
5.受話器のマイクとスピーカーをそれぞれ3.5mmケーブル2本に半田付けします。これらのケーブルは、Raspberry Piからスピーカーへ、マイクからRaspberry Piへ信号を伝送します。これらのケーブルは、ケース内で接続でき、元の受話器のコードも使えるはずです。どのケーブルがスピーカーに、どのケーブルがマイクに繋がっているかを見分けるには、少し試行錯誤が必要になるでしょう。
画像
1
の
2

6. 3.5mm ケーブルを USB オーディオ アダプターに接続し、正しい順序で接続するように注意してください。
7. Piを携帯電話に差し込み、カバーを閉じます。または、アシスタントの設定をデバッグしている間はカバーを開けたままにしておきます。Piに接続された電源アダプターは、本来電話線が通っていたケースの背面から出します。
アシスタントの設定
1. インストールスクリプトを実行します。これにより、ベースとPythonの要件が処理されます。Raspberry Pi Zeroをお使いの場合、コンパイルプロセスに数時間かかることがあり、grpcのインストール手順で停止しているように見えます(非常に遅いため)。一晩実行しておくことをお勧めします。
cd google_assistant_telephone
make install
2.次のコマンドを実行してUSBオーディオを設定します。このコマンドにより、alsamixerの設定が編集され、USBカードがデフォルトのオーディオ出力として設定され、スピーカーとマイクの音量が調整されます。
make configure-audio
3.次のコマンドを実行し、携帯電話の受話器で話したり聞いたりして、音量をテストして調整してください。マイクまたはスピーカーの音量が十分でない場合は、alsamixerコマンドで調整してください。
# Run, speak something into the microphone, and listen
make test # Set volumes
alsamixer
4.プロジェクトIDを環境変数にエクスポートします。プロジェクトIDを取得するには、こちらのURLにアクセスし、プロジェクトを選択して、右上のプロフィール写真の横にある3つの点をクリックし、「プロジェクト設定」をクリックします。
export PROJECT_ID=your-project-id
5. Google への登録手順から モデル ID を環境変数にエクスポートします。
export DEVICE_MODEL_ID=your-model-id-from-the-earlier-steps
6. make run コマンドを実行します。このコマンドにより、このデバイスが登録され、設定がディスクに保存されます。これにより、今後環境変数は不要になります。
make run
7.電話を取り上げて、「カナダの首都は何ですか?」のような簡単な質問をして、アシスタントをテストしてください。うまくいけば、端末にログが表示され、アシスタントが応答します。別の質問をするには、受話器を置き、もう一度電話を取り上げてみます。
8. 最後に、次のコマンドを実行して、起動時にアシスタントが実行されるように設定します。
make configure-on-boot