気がつけば今年も残すところあと僅かです、皆さん如何お過ごしですか?ポンダッドです。

結局1ヶ月程掛かりましたがようやく対話型人工無脳「Samuel L 9000」が完成しました。

##Samuel L 9000

今回はChrome拡張機能として、Chromeウェブストアに公開しました。PVをつくったので御覧下さい。

ダウンロードと使い方を紹介します。まずはこちらのリンクよりChromeウェブストアを訪れて下さい。

Samuel L 9000 - Chromeウェブストア

ダウンロードが完了するとツールバー横にアイコンが出現します。アイコンをクリックすると新しいタブが開き、「Samuel L 9000」が出現します。

アイコンをクリックし、マイクの使用を許可すると人工無脳と会話が楽しめます。マイクの入力が終わったら録音終了の為もう一度クリックして下さい。

この人工無脳は、一部放送禁止用語を発言する為「成人向け」コンテンツ指定をしております。小さなお子様が利用しない様にご注意下さい。

##Chrome拡張機能(エクステンション)のつくりかた。

以前Chromeアプリを公開した際、こんな感じでまとめました。

【はじめての方向け】Chromeアプリのつくりかた。- フタパパ

拡張機能の場合も基本的なファイル構成は一緒なのですが、manifest.json の記述の仕方が一部異なります。[^1]

今回の様に拡張機能のボタンをクリックして新しいタブにhtmlを表示させる場合を例としてまとめてみます。

PonDad/Samuel-L-9000 - GitHub

コード、画像類は全てGitHubで公開していますのでよろしければ御覧下さい。

manifest.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"manifest_version": 2,
"name": "Samuel L 9000",
"description": "My Brother AI-Bot",
"short_name": "S_L_9000",
"version": "1.1.0",
"browser_action": {
"default_title": "Samuel L 9000",
"default_icon": {
"default_icon": {"38":"icon_38.png"}
}
},
"background": {
"scripts": [ "icon_clicked.js" ],
"persistent": false
},
"icons": {
"128": "icon_128.png",
"16": "icon_16.png"
},
"permissions": [
"tabs"]
}

icon_clicked.js

1
2
3
4
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.create({"url": "www/index.html" });
});

Chromeアプリの場合はapp で指定した部分を今回の拡張機能ではbrowser_action と記述しています。バックグラウンドの処理として指定したJavaScriptファイルの実行を許可します。

バックグラウンド処理をするJavaScriptファイル(ここではicon_clicked.js )にはChrome独自の実行処理を記述します。

ここでは拡張機能のボタンをクリックすると新しいタブでindex.html を開く様に記述しています。[^2]

外部APIを利用する場合にはもう少し追記しなくてはなりませんが、簡単なものならこの様に簡単なバックグラウンド処理を指定するだけでWebアプリをChrome拡張として公開することが可能です。

##Chrome拡張機能の豆知識

あまり知られていないと思うのですが、開発者登録を行わなくても自分のブラウザにChrome拡張を追加することが出来ます。

今回は先ほど紹介したGitHubのブランチよりファイルをまるごとダウンロードしてみます。

Chromeブラウザ右上のメニューアイコンより「拡張機能」に入り、「デベロッパーモード」のチェックボックスにチェックを入れます。

「パッケージ化されていない拡張機能を読み込む」を選択します。

ここに先ほどダウンロードしたファイルを読み込みます。通常の拡張機能として利用することが出来ます。

GitHubなどで公開されているものは、自分で使いやすい様にカスタマイズして利用することも出来ますね。

##まとめ

今回の相棒(AI-Bot)は言わば私の分身なので下らない事しか喋れませんが、もう少し工夫すれば気の利いたコメントを話す自分の相棒が作れるかもしれません。

私も今度は(放送禁止用語とかを話さない)子供向けのおしゃべりBotを作ってみたいなと思っています。では。

Samuel L 9000 - Chromeウェブストア


[^1]: Manifest File Format - Chrome

[^2]: Chrome拡張でツールバーからのHTMLページ表示 - Qiita