Perlの力も使って聴かせるAIの声

Event:

YAPC::Japan::Online 2022 LT

Presented:

2022/03/05 nikkie

../_images/202203_yapc_senryu_poem_as_lt_title.png

にっきーと申します📛

  • Pythonチホー から来ました🐍

    • PyCon JP 2021座長

    • データサイエンティスト at 株式会社ユーザベース

  • アニメが好きです

にっきーと申します📛

  • Pythonチホーから来ました🐍

    • PyCon JP 2021座長

    • データサイエンティスト at 株式会社ユーザベース

  • アニメが好き です

映画『アイの歌声を聴かせて』🤖🎤🎼

第45回 日本アカデミー賞 優秀アニメーション作品賞 🏆

  • アイの歌声を聴かせて

  • 漁港の肉子ちゃん

  • 劇場版 呪術廻戦0

  • シン・エヴァンゲリオン劇場版

  • 竜とそばかすの姫

めちゃめちゃハマってます!😍😍😍

../_images/202203_yapc_japan_ainouta_watch_log.png

鑑賞回数、30回超え

AI シオン🤖🎤🎼

作ろう、シオン🛠

  • アイうたが好き! 応援したい!

  • 私にできるファン活動?

  • 👉 ITの力で再現実装

小さく始める、作ろうシオン🛠

  • 一部機能にフォーカス

  • 音声対話 機能

  • (要は、Alexaみたいなものを作っています)

シオン v0.0.1を定義

  1. 日本語を聞き取る

  2. テキスト処理

  3. 日本語を喋って返す

シオン v0.0.1をPython🐍で実装(中)

  1. 日本語を 聞き取る (ASR)

  2. テキスト処理(オウム返し)

  3. 日本語を 喋って 返す(TTS)

シオン v0.0.1 powered by Perl 🐪

  1. 日本語を聞き取る(ASR) 🐍

  2. テキスト処理

  3. 日本語を喋って返す(TTS) 🐍

🐪と🐍をシェルスクリプトで繋ぎます

シオン v0.0.1のテキスト処理 🐪

  • 天気が訊ける 機能 ☀️🌤⛅️☁️🌧

  • 今回のYAPC Japan LT駆動で、Perlに入門🔰(Perl入学式を参照)

シオン v0.0.1のテキスト処理部分(Perlで実装)🐪🔰

聞き取ったテキストに

  1. 「天気」を含んでいたら、東京の天気を取得(例:天気教えて)

  2. 「天気」を含んでいなければ、オウム返し(例:カンファレンス楽しい)

Demo! AIの声を聴かせます

  1. 「天気」を含まない例

  2. 「天気」を含む例

※処理が遅いのは生暖かい目で見守ってください(愛すべきポンコツAIなのです)

追記 デモ1実行時のログ(オウム返し)

$ ./connect_services.sh
start ASR by 🐍
2022-03-05 18:21:09,895 - my_first_shion.asr - INFO - ASR model load: start
2022-03-05 18:21:17,706 - my_first_shion.asr - INFO - ASR model load: end
なにか話してください
応答中...
end ASR
認識した文: カンファレンス楽しい

start text processing by 🐪
end text processing
返答する文: カンファレンス楽しい

start TTS by 🐍
2022-03-05 18:21:27,100 - my_first_shion.tts - INFO - TTS model load: start
2022-03-05 18:21:27,157 - my_first_shion.tts - INFO - TTS model load: end
end TTS

追記 デモ2実行時のログ(天気を取得して返す)

$ ./connect_services.sh
start ASR by 🐍
2022-03-05 18:21:40,275 - my_first_shion.asr - INFO - ASR model load: start
2022-03-05 18:21:46,475 - my_first_shion.asr - INFO - ASR model load: end
なにか話してください
応答中...
end ASR
認識した文: 天気を教えて

start text processing by 🐪
end text processing
返答する文: 東京地方は、晴れています。

start TTS by 🐍
2022-03-05 18:21:53,976 - my_first_shion.tts - INFO - TTS model load: start
2022-03-05 18:21:54,026 - my_first_shion.tts - INFO - TTS model load: end
end TTS

LT駆動Perl入門の感想🔰

  • Perl入学式のテキスト最高! 本当にありがとうございます!!❤️

  • Linuxコマンドから始めて、Web APIの呼び出しまで 幅広く カバー

  • 日本語 で大きくハマらなかった(テキスト無しだとハマっていたはず)

シオン v0.0.1 powered by Perlの感想🤖

  • 追加した機能:天気が訊ける

  • 私「なんか違う🤔」

  • (これはAlexaであって、シオンじゃないかも・・)

まとめ🌯:Perlの力も使って聴かせるAIの声

  • 『アイの歌声を聴かせて』のAIシオンの 音声対話機能 を実装

  • Pythonで音声を扱い、 Perlでテキスト処理と分担 してみた

  • 好き なものをコードを書く題材にするの、とても楽しい😆

One more: 秘密はね、最後に明かされるんだよ

  • 本日15:30くらいに届いた ピザ 🍕

  • 2021/10 PyCon JP ➡️ 2021/12 イベント振り返り ➡️ 2022/03 YAPC Japan

  • 皆さんのピザのツイート見てとても嬉しかったです(関係者の皆さま、ありがとうございました)

ご清聴ありがとうございました

  • 運営スタッフの皆さま、LTの機会をありがとうございました❤️

  • 『アイの歌声を聴かせて』、面白いからみんな観て!(配信始まります。続くAppendixへ)

Appendix:語り残したこと

  • アイの歌声を聴かせてについて

  • シオン v0.0.1実装について

  • 自己紹介詳細版

アイの歌声を聴かせて

あのエンジニアからもオススメの声!

あのエンジニアからもオススメの声!

全人類向け! 面白いからみんな観て!

シオン v0.0.1実装

音声の聞き取り・喋る仕組み

どちらも 公開されている機械学習のモデル を読み込んで実現しています

音声の聞き取り(ASR)

  • 音声認識 Automatic speech recognition)

  • 声をPythonに聴かせて

喋る(TTS)

ソースコード

  • 今年に入ってから、プライベートリポジトリで開発してきました

  • そろそろアルファ版として公開します💪

お前、誰よ(自己紹介詳細版)

  • Python大好き にっきー

  • Python歴4年。株式会社ユーザベースのデータサイエンティスト(NLPer)

お前、誰よ(自己紹介詳細版)

EOF