シンギュラリティ対策室

シンギュラリティは本当にくるのか?人工知能分野(おもに機械学習)の学習。その他いろいろ。

PowershellでSota君とのTCP通信メモ。

VstoneMagicのTCP/IPサーバ受信ブロックを使用して Powershellで作ったプログラムとsota君をTCP通信するというタイミングがあったのでメモに残しておきます。

 #送信内容
 $call = “ok`n”

#ソータと接続 $TCPSocket = New-Object System.Net.Sockets.TcpClient(“sotaのipアドレス”, 5001) $stm = $TCPSocket.GetStream()

#ソータへ送信 $byte = [System.Text.Encoding]::UTF8.GetBytes($call) $stm.write($byte,0,$byte.length)

#ソータとの通信切断 $TCPSocket.close()

これは色々なところに使えるかも?と思いました。

送信文字には改行コードの`nを加えて、Sota君側のポート番号は5001番です。

QRコードライター登場

Sota君の流れで、 QRコードライターを制御し、動かすために奮闘しています。

VB.NETと初めて向き合った私。

VisualStudioも初めてインストール

書籍「作って覚えるVisualBasic2015」も購入。

(インストールしたのは2015が配信されていなかったのでVisualStudio2017)

上記書籍を3日でざっくり読む。

QRコードライターのサンプルソースをサイトからダウンロードし、 分析開始。

VisualStudio2017のインターフェースにとまどいながら、サンプルソースの分析奮闘。

いざオリジナルのアプリ開発へレッツゴー。

(今までの価値観からすると急展開、でもそんな価値観は捨てて楽しみます)

そして現在、開発中。

先輩に助けられながらなんとか開発は進んでいます。 時間はかかってしまっていますが。

Pythonのときも、

書籍「実践力を身につけるPythonの教科書」を じっくり読み、

機械学習の世界へレッツゴー!

(初めてすぎる。。)

でした。

常にチャレンジ精神を忘れなければ、きっとなんとかなりますね!

とても広く浅く様々な言語の経験を積ませていただいている。

PythonVB.NETも初めてで、正直とまどいましたが。

最初はみんな初心者なので、

私もこの職種なら誰もが通りうるであろう道をゆっくりと進んでいます。

新人研修を迎えるころ

四月になると新入社員が入ってきますね。

そして私たち先輩はその準備をしています。

PCの設定や社内ネットワークの説明、資料の準備、研修に使うアプリのインストール等。

Sota君はといいますと、

今のところ新人研修では出番の予定はありません。

予想外の質問や気付きが出てくることと思いますが、

これも新人さんとの貴重な接点ということで、 柔軟に対応していきたいと思います。

新入社員の皆さんに負けないように、

新人研修は、企画部チカラを合わせて

フレッシュな姿勢が見せられればと思います。

彩の国ビジネスアリーナ【その2】

【その1】とは別人がお送りする、展示会の顛末記です(このblogは複数名で運営しています。文体を見れば一目瞭然ですが)。

2台のSota君の内の1台を私が受け持ちました。

で、何を行ったかというと、当blogでも記事にしました音声認識等のデモを行いました。

「事件は会議室で起きてるんじゃない!現場で起きてるんだ!」

もう1台のSota君が健気にポン引き^H ^H ^H ^H 客引きを行っている傍ら、こちらのSota君は寡黙に自らの出番を待つ・・・かというとさにあらず。周りの声に反応して、ブツブツと繰り言を呟いていたりしました。

これが今回書きたかった内容なのですが、音声認識のノイズ対策の問題です。

開発中には、さほどうるさい環境でもないので問題なく音声認識を行えたのですが、今回の場所は展示場です。

  • 常時聞こえる周囲の人々の話声。
  • 私達のブースに立ち寄ったお客さんとの会話。
  • 時折放送される場内アナウンス。

それらすべてに、Sota君が反応してしまうのです。

私がお客さんと会話をしていると、そばにいるSota君が言葉の端々を拾って脈絡のないセリフを放ったりするのは、コドモが意味も分からずオトナの会話にくちばしを突っ込むようで微笑ましいのですが、ちょっと音声認識のデモとしては頂けません。

そして僕は途方に暮れる

ええ、そりゃぁもう、現場でチューニングをしましたョ。

でも、付け焼刃でどうなるものでもないし時間もないので、とうとうあきらめて音声認識サーバの処理結果が見えるように、ノートPCの画面をお客さん側に向けておきました(ほーら、色々処理してるんですよー。すごいですねー)。

もし、展示会で音声認識を行おうと企んでいる方がいらっしゃいましたら、対策は必須ですよ(私がやらなかっただけで、当然のことかもしれませんが)。

僕にできるすべて

さて、展示会は終わりましたが、戦いはこれからです。ということで、音声認識の第2ラウンドです。

今回得た教訓は、

  • 音声を受信したときを認識契機にしてはいけない。
  • 対象者以外の音声を拾ってはいけない。

ということでした。

周りがガヤガヤしている時は、認識したい音声とは別の音声をトリガーとして認識を開始してしまいます。なので、認識開始スイッチを設けるのが手っ取り早い方法かもしれません。

あるいは、指向性マイクを入力デバイスとするのもよいかもしれません。

一定レベル以下の音声はノイズとして除去(スレッショルドフィルタ)してしまうという手もありますが、環境に応じて能動的に反応レベルを変える必要があるかもしれません(それこそ機械学習の成果が試せる?)。

いずれにせよ今後の課題ですが、現在別件作業が絶賛発生中のため、また時機を見てトライしたいと思います。

以上、ten@蓼科情報でした。

Python始めたばかりでscikit-learnのirisデータセットって何?を調べてみる

Python新人の私が、先輩に教えてもらいながらPythonをインストールし、

さて、機械学習とは何だろう?と、

色々な本や記事を読んで過ごすうちに。

調べていると、

どうやら機械学習には、Pythonで使えるライブラリの

「scikit-learn」が多く使われているということがわかりました。

このブログの初期にあるAnaconda3のインストール記事も参考にしながら

ケーブルカーで行こう! - シンギュラリティ対策室

なんとかscikit-learnを使える環境を構築。

アヤメの計測のデータセット [Iris Data Set]

UCI Machine Learning Repository: Iris Data Set

が一緒にインストールされているという部分まで行きつき、

では、このデータセットをどう使おうか?まできました。

調べていると、

どうやら

  • from sklearn.datasets import load_iris

  • iris = load_iris()

で読み込み、

データセットの項目 sepal length、sepal width、petal length、petal width、 をpandasを使いそれぞれA、B、C、Dと読み込み表示。

  • import pandas as pd

  • pd.DataFrame(iris.data, columns=list(“ABCD”))

list(“ABCD”)をiris.feature_namesという風にも表現可能らしい。

これでPython上で一旦表示されました。

さらに、

  • iris.target

で分類表示が出来る模様。

今日は何が言いたいかと言いますと、

アヤメの計測のデータセットPythonで表示させることが出来た、という進歩があったということです。

活用へとつづく、、、。

彩の国ビジネスアリーナ【その1】

2017年2月1~2日に、さいたまスーパーアリーナ彩の国ビジネスアリーナが開催されました。 f:id:antisingularity:20170203104035j:plain

今年はSotaくんを出展してきました。

f:id:antisingularity:20170203104941j:plain

2台いるSotaのうち、写真のSotaは

  • 動体検知
  • ようこその挨拶
  • たまに患者呼び出し

をがんばってもらいました。
疲れたと愚痴も言わずに挨拶し続ける健気なSotaくんでした。

インターネットオプションをなるべくスッキリ開きたい

今日調べたてのショートカットをご紹介。

タスクバーの検索ボックスで、
inetcpl.cpl

f:id:antisingularity:20170203104027p:plain

私の会社では、社内ネットワークにプロキシサーバーを利用していて、 セミナー等で外出した際は、プロキシサーバーの設定変更が必要です。 都度行ってもたいした作業ではありませんが、

  • ブラウザ起動
  • 設定
  • 詳細設定を表示
  • プロキシ設定の変更

  • inetcpl.cpl
  • 接続タブ

に置き換えられるので、なかなか便利です。
ご参考まで