BLOG
ブログ

Alexaをしゃべらせる

Alexaをしゃべらせる

CONTENT

こんにちは、東京エンジニアのSWです。


皆さんはスマートスピーカーによるAIアシスタントって使っていますか?
AmazonのAlexa、GoogleのGoogle Home、AppleのSiriなどが有名どころですね。

私はAmazon Echo DotでAlexaを使って、BGMをかけたり、その日の予定などの確認をしたりしています。
このほかにもさまざまな家電製品と連携することができるので、椅子に座ったまま身の回りのことはAlexaがすべてやってくれる、なんて日が来るかもしれませんね。

今回はこのAlexaに、任意の言葉をしゃべらせてみようと思います。


■用意するもの

(1)Amazon Alexa
(2)PC(私の場合はWindows10)


■事前準備

(1)WSLインストール

WSLはWindows上で実行できるLinux仮想環境です。
https://learn.microsoft.com/ja-jp/windows/wsl/

インストール方法はリンク先にあります。OSはUbuntuを選択しました。


(2)jqコマンドインストール

WSLを起動し、jqコマンドを使えるようにします。
jqコマンドは、json形式データの整形や加工を行うコマンドです。

以下コマンドでインストールします。

sudo apt install jq


以下のように確認コマンドを実行し、整形されたデータが出力されればOKです。

echo "{\"a\":123}" | jq
{
   "a": 123
}


■スクリプトダウンロード

githubで公開されている以下のスクリプトを任意の場所へダウンロードします。https://github.com/thorsten-gehrig/alexa-remote-control.git

gitがインストール済みであればcloneしてもよし、なければzipファイルでダウンロードし任意の場所へ解凍します。


■スクリプト設定

ダウンロードしたalexa_remote_control.shをテキストエディタで開き以下の変数を設定します。

・SET_EMAIL
AmazonアカウントのEメールアドレス

・SET_PASSWORD
Amazonアカウントのパスワード

・SET_MFA_SECRET
MFAシークレットキー
※MFAシークレットは以下の手順で確認できます。


1. Amazonのアカウントサービスから、ログインとセキュリティを開く
2. 2段階認証の「管理」を開く
3. 新しいアプリの追加を開く
4. 「バーコードをスキャンできませんか?」というリンクを開く
5. ダイアログに表示されている、4桁区切りの52文字のキーがMFAシークレット


・SET_LANGUAGE
ja-JP

・SET_TTS_LOCALE
ja-JP

・SET_AMAZON
amazon.co.jp

・SET_ALEXA
alexa.amazon.co.jp


■スクリプトに実行権限を付与

chmod 775 alexa_remote_control.sh


■実行

WSLで以下のように実行すると、Alexaが「テスト」しゃべってくれます。

./alexa_remote_control.sh -e "speak:テスト"

テキストファイルなどの長い文章を読み上げるには、以下のように実行すればOKです。

./alexa_remote_control.sh -e "speak:`cat test.txt`"


■最後に

今回使用したスクリプトにはしゃべらせる以外にもさまざまなオプションがあるので、気になる方は調べてみてください。
またスクリプトを見ると分かるように、外部公開されたAPIを使用しているので様々な応用ができそうです。

APIについても機会があったら調べてみようと思います。