SlideShare ist ein Scribd-Unternehmen logo
1 von 51
舞え!ひろしま Kaggler
(音声認識とPython)
with 株式会社シュアルタ紹介
2018年10月6日 西本卓也 @24motz
PyCon mini Hiroshima
タイトルだけ立派ですみません
https://www.hiroshima-navi.or.jp/special/kagura/
• 舞え!ひろしま Kaggler
2
お前だれよ @24motz / nishimotz
• 広島 → 早稲田大学 → 京都工芸繊維大学 → 東京大学
• 機械学習、認知科学、障害者支援
• 広島
• ソフトウェア受託開発
• スタートアップ企業(リモートワーク)
• 株式会社シュアルタ設立(2018年)@ fabbit 広島駅前
• Python と C++ と JavaScript
• 非営利の活動
• スクリーンリーダーNVDA日本語版
• PCNひろしま / PyCon mini Hiroshima / すごい広島 with Python
3
株式会社シュアルタ
• チーム家族
4
ペットイベントと障害者イベント
• 多様性の受容
• 既視感
• イヌ(盲導犬)と一緒に歩く来場者たち
• ペットバギー(車椅子)で通行する人たち
• トラブル(粗相)があると駆けつけるスタッフ
Sebastian Hartlaub
https://commons.wikimedia.org/wiki/File:Hundepfeife01.JPG
NVDA: Non Visual Desktop Access
• オープンソースの Windows 対応スクリーンリーダー
• 3ヶ月ごとにリリース、新しい技術や環境への対応
• コアから Python で実装されている
• 2010年ごろから日本語化
• 最初は日本語音声合成エンジンの組み込み
• 2011年 PyCon mini JP / 2012年 PyCon JP 併催イベント
• NVDA日本語チーム
• 日本語版配布(コードサイニング/保守)
• 本家版NVDAの開発と翻訳
• 視覚障害者・技術者・開発者に対する普及啓発
6
NVDAチートシート
7
Pythonで音声認識
• クラウド音声認識サービス + Python API
• 音声認識エンジン + Python wrapper
• Julius + socket 通信など
• ときどき雑誌などでノウハウが紹介される
• Pocketsphinx Python
• pip でインストールできる、英語ならすぐに動かせる
• ところで音声認識って?
• 孤立単語認識、連続単語音声認識(ディクテーション)
• まるで将棋(計算機工学総動員 → よくわからないブラックボックス)
8
スマートスピーカーの実現例
• ホットワードを聞き取るまで
• 低消費電力でローカルの音声認識
• 語彙サイズが小さい(数単語)
• 対雑音性が求められる
• どこから聞こえたか(音源定位)
• ホットワードが発話されたら
• それに続く音声を録音
• 音源定位情報を使って雑音除去
• 高性能・大語彙のエンジンで処理
• クラウドの場合もある
9
音声認識とディープラーニング
• TensorFlow Simple Audio Recognition tutorial
• Open Speech Recording (AIY Project)
• Kaggle competition
10
https://www.safaribooksonline.com/library/view/intelligent-mobile-projects/9781788834544/
AIY Voice Kit
• Raspberry Pi でスマートスピーカーを自作する
11
MATRIX Voice
Snowboy
snowboy
import snowboydecoder_arecord as snowboydecoder
import subprocess
def detected_callback():
subprocess.call("aplay clicker.wav", shell=True)
detector = snowboydecoder.HotwordDetector("snowboy-23285.pmdl", sensitivity=0.4, audio_gain=1)
detector.start(detected_callback=detected_callback)
detector.terminate()
「実践的AI人材育成法」
• PyCon JP 2018 (9月17日~18日)
• 中山氏(東大松尾研)
• AI人材育成のポイント
• プログラミング
• コンペティション
• コミュニティ
• パターン認識の歴史はコンペの歴史
• 画像/音声/音楽
• 共通のデータセットで性能の比較
• コンペでは育たない技術や人材もあるが(後述)
16
いま世界を見渡すと
• Kaggle が話題
• 機械学習
• データサイエンス
• 懸賞金?
• 参加者 = Kaggler
• ケイグラー?
• カグラー?
17
https://www.kaggle.com/learn/overview
Kaggle コミュニティ
• 人気 Kernel 探し
• Jupyter のカーネル
• speech で検索
• 656 voters を見つける
18
音声信号処理の基礎
• データセット
• TensorFlow SR Challenge
https://www.kaggle.com/davids1992/speech-representation-and-data-exploration
19
Notebook (Kernel?) を Fork する
20
21
22
23
24
25
Jupyter Notebook + コンソール
26
バージョン管理・実行履歴
27
活動の可視化
28
New Kernel
29
Script
30
タイトルをつけてcommit
31
戻ると
32
console
33
ネットワークが使えない
34
Settings
35
commit するたびに再実行
36
Add Data
37
../input フォルダを確認
38
DataからKernel探し
39
Delete Kernel は Options の中にある
40
test.7z の中身
41
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2017-11-14 11:17:46 D.... 0 0 test
2017-11-14 11:30:34 D.... 0 0 test/audio
2017-11-14 11:28:56 ....A 32044 1117017472 test/audio/clip_000044442.wav
2017-11-14 11:29:04 ....A 32044 test/audio/clip_0000adecb.wav
2017-11-14 11:28:55 ....A 32044 test/audio/clip_0000d4322.wav
2017-11-14 11:29:00 ....A 32044 test/audio/clip_0000fb6fe.wav
2017-11-14 11:29:17 ....A 32044 test/audio/clip_0001d1559.wav
2017-11-14 11:28:18 ....A 32044 test/audio/clip_0002256ed.wav
2017-11-14 11:29:19 ....A 32044 test/audio/clip_0002a4a1f.wav
2017-11-14 11:28:24 ....A 32044 test/audio/clip_0002d9b83.wav
2017-11-14 11:29:46 ....A 32044 test/audio/clip_000373a5b.wav
2017-11-14 11:28:19 ....A 32044 test/audio/clip_0003c7122.wav
2017-11-14 11:29:26 ....A 32044 test/audio/clip_0003e6aee.wav
2017-11-14 11:30:14 ....A 32044 test/audio/clip_00049951d.wav
sample_submission.csv
42
fname,label
clip_000044442.wav,silence
clip_0000adecb.wav,silence
clip_0000d4322.wav,silence
clip_0000fb6fe.wav,silence
clip_0001d1559.wav,silence
clip_0002256ed.wav,silence
clip_0002a4a1f.wav,silence
clip_0002d9b83.wav,silence
clip_000373a5b.wav,silence
clip_0003c7122.wav,silence
clip_0003e6aee.wav,silence
clip_00049951d.wav,silence
clip_0004c6707.wav,silence
clip_0004f8b63.wav,silence
clip_00068e281.wav,silence
End-to-end baseline TF Estimator LB
• スペクトログラムの画像認識
43
ちょっと手直し
• データセットに test がない
• train の一部で結果を出力
• フルで実行すると終わらない
• タスクを簡単にする
• one two three
• データセットを減らす
• glob
• 畳み込みレイヤーを減らす
• 4段から1段に
44
learn_runner.run
45
GPU on
• NVIDIA Tesla K80
• 混んでたら起動時に待たされる
46
commit するたびに run all してしまう
47
カーネル再起動
48
1分くらいで完了、結果は不安定?
49
Kaggle まとめ
• クラウドで実行されるデータ分析と機械学習の環境
• フォークして改良して公開
• データセットも簡単に共有
• さらに、コンペティションと交流
• ブラックボックスと戦う第一歩
• Python の知識も、機械学習の知識も生かせる
• 無料、環境構築不要
• 立ち上がれ、広島の Kaggler たち!
50
Kaggle CLI
• sudo python3 -m pip install kaggle
• Account 画面で API key 生成
JSON ファイルを ~/.kaggle/kaggle.json に置く
• $ kaggle competitions download
-c tensorflow-speech-recognition-challenge
51
kaggle competitions {list,files,download,submit,submissions,leaderboard}
kaggle datasets {list, files, download, create, version, init}
kaggle kernels {list, init, push, pull, output, status}
kaggle config {view, set, unset}

Weitere ähnliche Inhalte

Ähnlich wie 181006 nishimoto-kaggle

Ähnlich wie 181006 nishimoto-kaggle (20)

PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
探索アルゴリズム + 深層学習により新化合物を発見する
探索アルゴリズム + 深層学習により新化合物を発見する探索アルゴリズム + 深層学習により新化合物を発見する
探索アルゴリズム + 深層学習により新化合物を発見する
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
 
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
 
200918 hannari-python
200918 hannari-python200918 hannari-python
200918 hannari-python
 
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜	【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
 
フォントのお話
フォントのお話フォントのお話
フォントのお話
 
フォントのお話
フォントのお話フォントのお話
フォントのお話
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
 
Using asimdhp (fp16) on Jetson Xavier CPU
Using asimdhp (fp16) on Jetson Xavier CPUUsing asimdhp (fp16) on Jetson Xavier CPU
Using asimdhp (fp16) on Jetson Xavier CPU
 
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
 
OpenVRやOpenXRの基本的なことを調べてみた
OpenVRやOpenXRの基本的なことを調べてみたOpenVRやOpenXRの基本的なことを調べてみた
OpenVRやOpenXRの基本的なことを調べてみた
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習
 
Deep learning Libs @twm
Deep learning Libs @twmDeep learning Libs @twm
Deep learning Libs @twm
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
 
機械学習環境にハマってみよう
機械学習環境にハマってみよう機械学習環境にハマってみよう
機械学習環境にハマってみよう
 
Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話
 
LoRaWANとAzure IoT Hub接続ハンズオン
LoRaWANとAzure IoT Hub接続ハンズオンLoRaWANとAzure IoT Hub接続ハンズオン
LoRaWANとAzure IoT Hub接続ハンズオン
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由
 
ROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROSROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROS
 

Mehr von Takuya Nishimoto

Mehr von Takuya Nishimoto (20)

221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている
 
220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集
 
220126 python-datalake-spark
220126 python-datalake-spark220126 python-datalake-spark
220126 python-datalake-spark
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
 
210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから
 
210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython
 
210728 mpy
210728 mpy210728 mpy
210728 mpy
 
210630 python
210630 python210630 python
210630 python
 
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop Python
 
210428 python
210428 python210428 python
210428 python
 
200429 python
200429 python200429 python
200429 python
 
200325 flask
200325 flask200325 flask
200325 flask
 
200208 osh-nishimoto-v2
200208 osh-nishimoto-v2200208 osh-nishimoto-v2
200208 osh-nishimoto-v2
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
 
191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto
 
191114 iotlt-nishimoto
191114 iotlt-nishimoto191114 iotlt-nishimoto
191114 iotlt-nishimoto
 
191030 anna-with-python
191030 anna-with-python191030 anna-with-python
191030 anna-with-python
 
190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp
 
190925 python-windows
190925 python-windows190925 python-windows
190925 python-windows
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

181006 nishimoto-kaggle