Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
VUIでシェル芸を実行できるようにしてみた
Search
amanoese
August 10, 2019
Technology
0
2k
VUIでシェル芸を実行できるようにしてみた
第43回シェル芸勉強会(2019/8/10)のLTで発表した内容です。
amanoese
August 10, 2019
Tweet
Share
More Decks by amanoese
See All by amanoese
魔術式シェル芸
amanoese
0
1.1k
シェル芸でなれるVTuber!
amanoese
0
900
Technopop shell-gei(テクノポップシェル芸)
amanoese
0
510
Alexaアカウントリンクの認証と申請で躓いた話
amanoese
0
56
シェル芸のおかげでUnicodeに怯えず楽しめるようになった話
amanoese
0
190
AlexaにSSMLで音声記号(IPA) 使って喋らせたかった
amanoese
0
460
インタラクティブなシェル芸実行コマンド作った感想
amanoese
0
160
静的WEBサイトをSPA化するワンライナー
amanoese
0
86
Other Decks in Technology
See All in Technology
エンジニアの健康管理術 / Engineer Health Management Techniques
y_sone
8
6.3k
【Forkwell】「正しく」失敗できるチームを作る──現場のリーダーのための恐怖と不安を乗り越える技術 - FL#83 / A team that can fail correctly by forkwell
i35_267
2
160
Pwned Labsのすゝめ
ken5scal
2
590
Qiita Organizationを導入したら、アウトプッターが爆増して会社がちょっと有名になった件
minorun365
PRO
1
380
生成AI×財務経理:PoCで挑むSlack AI Bot開発と現場巻き込みのリアル
pohdccoe
1
850
貧民的プログラミングのすすめ
kakehashi
PRO
2
300
入門 PEAK Threat Hunting @SECCON
odorusatoshi
0
190
マルチアカウント環境における組織ポリシーについて まとめてみる
nrinetcom
PRO
2
110
開発者体験を定量的に把握する手法と活用事例
ham0215
0
150
いまからでも遅くない!コンテナでWebアプリを動かしてみよう!コンテナハンズオン編
nomu
0
190
“常に進化する”開発現場へ! SHIFTが語るアジャイルQAの未来/20250306 Yuma Murase
shift_evolve
0
160
Ruby on Railsで持続可能な開発を行うために取り組んでいること
am1157154
3
190
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
GitHub's CSS Performance
jonrohan
1030
460k
Code Reviewing Like a Champion
maltzj
521
39k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Facilitating Awesome Meetings
lara
53
6.3k
Agile that works and the tools we love
rasmusluckow
328
21k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
Code Review Best Practice
trishagee
67
18k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
28
1.9k
Transcript
VUIでシェル芸を実行できるよう にしてみた
自己紹介 RustとElmに憧れてる自称うぇっぶけいふるすたっくえ んじにあ javascriptとシェル芸が好き 仕事では Java kotlin使い始めました taka@SIではたらくフレンズ @amanoese
VUIってなに? AlexaとかGoogle のスマートホームとか音声で操作するユーザーインターフェー スのこと 個人的にはAlexaが好き
VUIでシェル芸をしたい rm -rf / unko.shout
Alexaに実装してみた
シェル芸をどうやって音声で伝えるか
シェル芸 -> Base32 -> ひらがな Base64をひらがなにマップすると半濁音鼻濁音の発音難しいため シェル芸をBase32に変換後ひらがなにマップした発音をAlexaにする。 つまりこういうこと $ echo
'unko.shout 私が公式マスコット' | base32 -w0 | sed 'y@ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=@あいうえおかきく けこさし すせそたちつてとなにぬねのはひふへほまみむ@' そにねきぬふはそそせなきまほしなおえとひたあたえちききそしいせす へぬまけみのへえとふつのかそたえちさはまくあへえへそいのちうちむ
シェル芸 -> Base32 -> ひらがな しかし… さすがに脈絡の無い単語を発音するのは困難(やってみてわかった) なのでVUIを意識して変更してみる そにねきぬふはそそせなきまほしなおえとひたあたえちききそしいせす へぬまけみのへえとふつのかそたえちさはまくあへえへそいのちうちむ
シェル芸 -> dump echo -n 'unko.shout 私が公式マスコット' | od -tx1
-A n|tr '[:lower:]' '[:upper:]' 75 6E 6B 6F 2E 73 68 6F 75 74 20 E7 A7 81 E3 81 8C E5 85 AC E5 BC 8F E3 83 9E E3 82 B9 E3 82 B3 E3 83 83 E3 83 88
そして呪文(詠唱)を集めたJSONを用意 適当に集めてきた呪文(詠唱)をMecabで名詞と動詞に分けて、 0~FFまでの数字と対応付けたJSONファイルを作成します。 cat spell.txt | mecab | tr '\t'
,|awk -F, '$2~/名詞/||$1~/EOF/{print s;a=1;s=$1}a==2{a=0;s=""}a==1&&$2~/助詞/{a=0;if($3~/連体化 /){a=2}s=s$1}'|sed -n '/../p'|sort -u |grep -P '\p{Han}' paste - 255.txt | head -256 | sed -r 's/^(.*)\t/\"\1\":/;s/:(.*)/:"\1",/'| sed '1s/^/{/;256s/,/}/' > meisi.json {"安らぎ":"00","為す":"01","移る":"02","育み":"03","育む":"04","引き":"05","引き継 が":"06","引き裂く":"07","羽ばたき":"08","渦巻く":"09","汚し":"0A","汚れ":"0B","汚 れた":"0C", ... } https://gist.github.com/amanoese/92ee02989a1e3371981a96aa8dce36c1
シェル芸 -> dump -> 呪文 JSONを利用してシェル芸を呪文に変換 $ echo -n 'unko.shout
私が公式マスコット' | od -tx1 -A n|tr '[:lower:]' '[:upper:]' | xargs -n1 | sed -f <(cat meisi.json meisi.json meisi.json dousi.json |tr -d '{},'|sed -r 's#^$##;s#(.*):(.*)#s\2:\1#;s#:"##;s#"#/#g'|awk '$0'|awk '{print int((NR-1)/256 + 1)"~4"$0}') |sed '4~4s/$/。/'|tr -d \\n 客を希望を眼差しで示せ。永久に鬼を棺に示せ。客を義務を印を討つ。光に狭間の 雫よ囚われ。空を七色の極限の吹き飛べ。七色の砂の結晶渡れ。胸に言の雫よ終 わり。魂を雫よ狭霧清め。雫よ胸に胸に渡れ。胸に具現
かっこよく呪文を唱えて シェル芸を実行 客を希望を眼差しで示せ。永久に鬼を棺に示せ。客を義務を印を 討つ。光に狭間の雫よ囚われ。空を七色の極限の吹き飛べ。七 色の砂の結晶渡れ。胸に言の雫よ終わり。魂を雫よ狭霧清め。 雫よ胸に胸に渡れ。胸に具現
かっこよく呪文を唱えて シェル芸を実行 実際にデモ
感想とか今後とか がんばってリリース目指す(Alexaスキルアワード参加させてみたい) 生成した文言が呪文ぽくないので、良い感じになるように修正したい ツイートするだけでなく実際にシェルを実行するようにしたい
None