オンライン懇親会でどう快適にテーブルを分けるか?あるいは聞き耳をたてる実験 at Hachioji.pm #79
こんばんは、uzullaです。
Hachioji.pmがオンライン化しはじめました
#hachiojipm でした。 pic.twitter.com/UHpsnYbY6O
— uzulla (@uzulla) 2020年4月25日
次回はこちら、ついに81回めです(Hachioji.pmは0-originです)
さて、オンラインカンファレンス・勉強会どうなるかなーって思って色々ツールはためしているんですが、色々課題あるなって感じています。考えていた課題を3行で。
- 大勢でオンライン懇親会(ZOOM呑み)するとハチャメチャなので部屋を分けたい
- 分けても、飛び込んだり、抜け出したり、サーフするの難しくない?
- 現実みたいに隣のテーブルの声がきこえればよいのでは?
で、このエントリとなる、やったことを3行で。
- とりあえず作ってためしてみた
- https://github.com/uzulla/kikimimi
- 結論から言えばまだ微妙!
課題
特にテック系のコミュニティでは毎月、毎週のように勉強会やカンファレンスが開催されています。そこでは発表は元より、様々なコミュニケーションも生まれ、IT系エンジニアとして勉強し、楽しんだりしてきました。
しかし、COVID-19によるリアルイベントの自粛により、コミュニティはオンラインに移行をはじめました。IT系のエンジニアはオンラインテレカンツールに慣れているので、一見容易に移行ができるのではないかと思っていましたが、一参加者として非常に違和感を感じ始めました、会話ができないことです。
オンラインの通話(テレカン懇親会、Zoom飲み会)は人数が増えると(具体的には4人以上)破綻しやすいな、という感想になりました。話す人しか話さなくなる(まあ、現実でもそう言うところはあるが、不可能にちかくね?となる) (「10人(等)の会もあるよ!」というのはそうなのだが、(現実もそうだが)コミュニケーションのクオリティは劣化し、パネルディスカッションに近づいていく)
あ、ROMというか、聞き専が悪いというわけではない、むしろオンラインは聞き専にとってききとりやすくて最高だとおもう、ただ、喋り始められないというところが問題だといっています。
また、今会話をしている人に遠慮して「はじめまして!何の人ですか?」みたいな世間話、アイスブレイクがしづらい環境と感じており、すでにリレーションができている人はともかく、そうではない人が「コミュニティ」に参加できないと感じている(と、私はあまりリレーションのないオンラインカンファレンスにいって感じた)
そうはいっても、3〜4人が上限ではいささかコミュニティとしてさびしい。それを課題と考える人はたくさんいるので、chを分けることになる、これはDiscordでもzoomでも手間の差でできる。あるいはもっと便利にしようと、たとえばRemoなどはバーチャルなテーブル(ch)を用意し、テーブル間を簡単に移動できる(ということになっている…)。
ただ、現実と違って別テーブルの会話は聞こえなくなる。となると「何話してるのかな?」と突然とびこんだり、あるいは「あっちのテーブルでPHPの話しているからいってきます!」みたいなのができない。「XXさんがさ」と遠くからきこえて「なになに?」ということもできない。 また、様子のみえないchに飛び込むのは非常な心理的ストレスがかかる。
ということで「聞き耳がたてられれば解決するかも?」ということで、今回ツールを作ってみることにした。
「喋っている内容を」ほかの人が喋りながら「目で」聞き耳をたてることができるので、複数チャンネルでのオンライン飲み会で、テーブルを渡り歩くことができるのではないか?全体の雰囲気を感じられるのではないか?というPoCになります。
実験
- Discordで、あるchの音声をリアルタイムにspeech to text(文字起こし)に食わせて、取れたテキストをリアルタイムにchに流し込む
- 「聞き耳」程度の精度がでるか?
やってみよう!ということで勢い作成したコードはこちらです。
で、自分の所属するコミュニティたるHachioji.pm #79 でやってみました。ログ(?)はエントリ最後においておきますが、まあ、最高!これで一発あたるぞ!とはならなかったですね。
- 「実用上」の認識精度はまあ…よくない。自分のPCのマイクからなら結構いけるので、テレカンのエンコードが相性悪いのかも、あるいはもっと単純に相手方マイク音質か?
- discord ブーストして 音声ビットレートあげたらワンチャン?(なお、Discordは他と比べて音が良いイメージがある、しかし他で試してはいない)
- 話者の切り替わりがひろえないと結構ムズカシイ、でもこれは「そういうサポートをしている」APIもあるので、解決できそう
- Speech to textは「できるだけ広いチャンク」で処理するので、リアルタイム性に乏しい。会話は途切れなく行われるのでしかたなさもある(これもサイレンス調整できそうだが)
- 文字起こしされない会話がかなりある。
- 3〜4時間やって、かかったお金は$5くらい?(GCPのSpeech to text)
- しかし、1chに1匹bot買うの大変すぎるのではw
うーん、「現時点では」無し寄りの有りかな…でも、工夫でいける気もする。どうでしょうね。まあやってみた感じ、面白さはあるし、がんばれば実用近くはなりそうと思う。
ボットのセットアップ、構造について
オーディオについては、Loopbackというアプリと、Soundflowerを組み合わせてルーティングしています。 GCPのサンプルコードはSoXをつかっている(CoreAudioをきく?)ので、LoopbackでChrome(Discord)の音をSoundFlowerにOutして、それをMacの「サウンドを入力する装置」(マイク入力)に設定しています。
展望
アイディアとして
などがあります。
「WebCam動画の差し込みは仮想UVC関連をつかえば簡単やろ!」って思ってるんですが、昨今のMacのテレカンソフトは仮想UVC蹴ってくるんですよね…、Zoomとか、Slackのテレカンツールとか、Discordもアプリ版はダメだった記憶。
BotをWindowsやLinux、あるいは(落ちやすいのだが…)ブラウザでやるなどの解決策がありますが、よく考えたら「HWとして認識させればいいなら、LinuxのGadgetドライバとして認識させれば、物理仮想Webcamになるな???」ということで調査中です。
まあ、仕事は結構忙しいのであんまこれやってる暇もないんですけど(仕事先にこのブログみられたら、やってんなや!って言われそう)、必要は発明の母ですからね、この不便さを忘れずになにか作って試してみたいですね。
ではまた!
で、以下、実際のログです
全部だとすごいことになるので、いくつか抜粋です。
## 多分、Macのマイクをひろってしまっている「明瞭な変換」していた時 kikimimi: MySQL kikimimi: postgresql kikimimi: アパッチ kikimimi: エンジンエックス kikimimi: hex 変換できない kikimimi: exendin 微妙だな kikimimi: ではあと何か入ってしゃべった時にどういう変化になるのかそこがちょっと分からない kikimimi: ドゥテスト kikimimi: この後帰ります kikimimi: お酒はありますね冷蔵庫の中に kikimimi: はーい
## 多分、拾い始めた kikimimi: 歩数教えてください安芸南加工日ノ神と少しテストがてら Discord で話してたんですけどなんだろうこの人の顔が出るじゃないですかこれを極力小さくすると人間はストレスが減るということがやっぱり分かりますね全画面に全画面に人の顔をしているとすごい圧迫的な感じがあるんであの人の顔がなんだろう30°ってくらいになる Twitter のアイコンぐらいになるぐらい小さくした方が良い精神的なもの苦労さんです kikimimi: 宿すか皆さん生きてますか kikimimi: ナースと家から出ない事になってもう窓窓の外が明るくなってると嘘だと思ってる kikimimi: 亡くなってからしか取れないコンビニと kikimimi: 今日母と姉スーパーね弁当屋さんとやり始めてるみたいなの見るとやっぱちょっと我慢すればみたいな間違いない kikimimi: なんだ面白いなトピックスってやつ来た瞬間に蹴りたいなと思いアテンドに書いてあるみろやなんでこいつ遊んでみてねんだシーア天道町俺の声だけで良くしてもみんな見てくれないんだなということはよくわかる kikimimi: あぐらかいてたこれやろ kikimimi: やれよマジであのアテンドがなくなってしまったんで当て逃げというチャンネルは完全に
kikimimi: 遠いとまあなんかそういうことを考えるとうまい具合にオンラインに対応していくっていうことが必要だと思うんですけどまぁ難しいですね世の中そんな甘くないぞというのが非常によくあるのが今作のことなんか皆さんを LINE の中に参加しました何でもいいですけどこういう kikimimi: なくてもただひたすら Slack だけみたいな kikimimi: それで見てましたけど kikimimi: 見ると観るで終わりなんすよねセミナーんだよな kikimimi: とんちが入った
## 自分がLTしていたときのあたり(この件について、LTした) kikimimi: じゃあじゃあえっとどうしようかな誰か誰かやります kikimimi: 色々あるあるんですけれどもまあ動くは動くんだなぁみたいな2時間で作った割にはま動く何回か拝見する意味もないと思う俺のそうだねお風呂入らして涙オンラインズームに移行しましたこの人数でこれだけに知ってる人間でもやっぱりこう話してるとこ話のコリジョンが発生してまあ厳しいですね8人とかは2人3人4人ぐらいが限度なんじゃないかなと個人的な意見としてある感じですが一度に8人とかはそもそもリアルでもマッキーもある人はまあ四人ぐらい出て今実数34人ぐらいになるみたいな世界観があるのかなそれでいて悪いとかそういうんじゃなくてそれはそれで全然土曜されてしかるべきなんですか色にはなりづらいねっていうところでまさにンカイリ村限界かな kikimimi: リアルでもね8時とかほも無理なんであと20人ズームのみたいなネタで光インターネットやってきて写真を見るんですけどまあ絶対成立するわけはないそんなの一人なのそれを誇らしくツイートしてる人だけはずっと喋って終わってるでしょみたいな世界だなあそうは言ってもコミュニティオンラインでコミュニティとしてやって行くのに34人が限界の世界観でやっていくっていうのはまあ寂しいですねあの寂しいっていうか嫌そうだよには楽しいんだけど新しい人はタブ増えないしそこまで定期的にネタを持って来ない人はほぼ自動になるしかない世界があるのはちょっと厳しい現実ではこれが何じゃないか聞いた改めていえばマジつ手ぶら別れて言ってまよに咳とかで4人でしゃぶりてちょっとじゃあ僕は他の席行ってきます離れる kikimimi: 明日のはちゃんとできるからまあいいし丸いは僕みたいな人間はまあ声でかくすれば勝てるみたいな世界があるわけでも全部で声高くするってほぼ迷惑ならびに怒られるシーアの隣の家から怒られそもそもなんかそんなにでかいことだったので全て解決しようという話があり荷物があります kikimimi: まじか乗ったら行く部屋作りますけどあのーあれちょっと待ってお前言えないですよ柏原選手歳をとりジェネラルに画像貼るの方に舞台がありましたの方に聞いてみたいの日だったんですけどまあ鏡野町使ってみてこんなもんしたもんやらんだという感想になりましたバグが多いしテーブルに人が座るんすよただ僕のアイコン開いてあの花壁アイコンがいてで僕スマホで入って満足した後スマホを切ったらその人が消えない kikimimi: このテーブルに入る入らないそうだから管理者に行って多分こいつはいないから半紙てくれみたいなそういう面白いを予防しないといけないそんなの話にならないし見た世界でまぁあとはまありすことに関して言うと今のもうみんないっこんちゃんに入ってます一応これチャンネル二個あってハッピー防止するとか出られればあの四人とかどんどんわかる7月 Discord チャンネルいくらでも作れるはずなんでマイクラでもかどうか知らんけどある手伝ってまだ解決するだね結局ここから先がちゃんと書けてないとこの道の向こうの方から例えばあのあれはもう頭には知ってるんだよねみたいなさせたなった時なんだ俺のこと呼んだか見たいな kikimimi: 何て言ったり空気を呼んで上映していくとかあるいは空気を読んで離れていくっていうことは非常に難しい現実ではどうやってそれを解決されてるかって言うとまたも聞き耳を立てることができてるからだなっていうのが基本的なばおちんしてあるんじゃないかなっていう風に思っていて今なので音声を認識してて薬起こすみたいなのであると女で聞き耳を立てることができるんじゃないかなというところがまぁ個人的な夏かま proof of Concept じゃないすけど目標としてあるとそれを試してみようかなというところで作ってみて実際に少し動かしてません結果に関しては今の上の方を見てみると分かるけど単語はなんとなく拾えるのかな kikimimi: まあ聞き耳ってそんなに正しく聞こえるもんじゃなくて良いはずだからまたデバイスコートって単語を拾うとか空気を読むて団子を拾うとかなそういうぐらいでいいのか逆に完全にログが取れてる必要性はあんまりないかなと思っているのであるいはもうちょっとこれでもうちょっとマシなぐらいの認識になればこういうものは例えばだけど今僕ジャスコにしてるんでもう一人の人としてこうプリンが出てると思うよねこういうところに他のテーブルテーブル会で話がありますよみたいな掃除してなんだか他にテーブル席では好きな子が見れればなかなかもうその前につけるの話ししてみたいと言ってくるわ雨そうだねあのほぼ今いるテーブルで興味のない話があったとしてもこの話をでき実際興味あんだよねって言って去っていくことはできるだけがある kikimimi: 非常に重要なのかなと思ってこれを調整していけば新しいなんだろうね kikimimi: だからではないものができるんじゃないのに僕は思っているって言うのはまあ詳しいところは特には和式説明するとこもほとんどないんですけれども後で発表資料をあげるかもしれないした船スライムジェネラルに貼っておくので皆さん興味があれば見ていたどうしてこうか見たいなと思ったんですけど我々はこれぐらい8人とかあるいは12とか巻いて話をする化け物をま作って送るのは非常に良い話だなと思うしお金かかんないんでこういう場を多少維持していくってのは何だろうとりあえずな延命措置してはこれでもいいと kikimimi: しまおちょっとレバテックカンファレンスセミナー消しの誰か払い的なものあるけど僕らもまあ見ていくっていうところがまあワンチャンあるんところで考えつつバイあったところで Facebook 今くれたんだありがとう山気合を入れたあのベンチャーとかあるいはを手が全部まま寝ると言わないけどうまいことやると思うんですかするために囲まれ彼らに気付かせるために今いろいろあることやっていくこのスタイル蜂に刺されたやんけどこういうのだから作って多分出してく俺の面白いよこういう手があるんじゃないのっていうのを待っていましてくってのが必要なんじゃないかなとかじゃないとマジで1年間セミナー kikimimi: YouTube を見続ける kikimimi: 非常に僕はぬか喜びさせられて kikimimi: なのであのまだ分かるので感想とか書きたくないストリーム送り続けるって結構その難易度は高いと思うからやっぱないんですかね kikimimi: そうなんすかねなんか grpc が裏で走ってるんで JR し PC をサポートするために Google じゃないやな奴はまず PHP 2になる PC って言ってくるの資格書入れましょうから始まったんで僕は無理ってで一番そう中でコードが一番シンプルだよ昔の kikimimi: イベントみたいな動きをするような行動を提供してたのがノートのライブラリだったんですよね kikimimi: 木造 Discord にテキストをポストするっていうのも必要だったんでそれはもうノートで書けばたんじゃないですかだからもうのどしかないなっていう感じなんだ剛とかジャパン待ったけど元 Java 僕と死んじゃうと思うそんなに時間かける石屋しなかったですよ昨日かおとといくらいにこの技術でやろってて今日の昼ぐらいから貼って書いてある年かな kikimimi: Microsoft は単純にあの見ようと思って見ていたんですけどまあもう Google で動いちゃったからまあいいかなという感じでそうな意見としては特に誰か別にいるかの動きがいいから順番に全部試したらそういうところのうまく言えるかなと思ったんだけど本当に試してないんで感想がないというのも書くんがそれを飲むのかと思ってまあそれを取るにそんな設定だった kikimimi: チューハイ飲むと大分アリスの周りが褒めてあげないといくら寂しいからってみたこれで良い形は分かりますね kikimimi: 仙台飲み始める kikimimi: 無料オフラインでもあの人 kikimimi: 普段よりカンファレンス関係ありませんありませんでした今回作ったこのプロダクトは漢詩8文字を読みながら何か他の人と話をすると結構どこにあてんしょん持って行かれるか見たいのでわかるんじゃないですかだからこのここに出したいんだよ俺はどっかにいると灰色画像として出すところを本当になりますけど QVC の行動で結構大変なんだねユニバーサル kikimimi: 結構大変なんだ反応 jisコードあ嘆く見えるんですよ確かに API で本当にメールしてみるわなんか知らなかったそれもう多分実装するとたぶん僕は画面を見てるっていう手で{{{誤検知でエロワードきたので検閲削除}}}いじらないで他の所が見れるんでかみさんの言っていたところクリアできなかったら隣で話してる話題がちょっと聞こえてた話をするみたいなことをやろうとするとなんかもう一つそういうのが必要そうですよね終わっちゃったらよかったらアバターでアバターの距離が近いと祭みたいなそういうのってなかなか難しいと思うんだよね何か良いアイデアがあればすごく5分 kikimimi: リモワ実家でも微妙に小さく聞こえてくるみたいな機能があるらしくて kikimimi: アパッチとかっていうんどう認識されたんでエンジン X はカタカナで出てきたのでまぁやろうと思えばこのどっちかって言うと文章を出すよりもあの昔ののデリシャスみたいなタグクラウド的なものがホワホワ出てるとかそういうのをお金取られるんだけどそんなにねいい認識じゃない気がする
## 他の人のLTと、終わりかけ kikimimi: コミットとかしたら同じことを気にして同じこと言っとコミットとかしたら同じことが鈴木ともみとしても習わない漢字で分かんないすよねいいなことがあるそれをまずって何するところからアルタネイティブソフトで色々あります kikimimi: 待ってくんないと困るの意味が使えない人もいるので行くのはなんかいろんな対処方法あるよねおってなった時のペロペロこれは見て未だに本当に終了の仕方を覚えられない日々を過ごし方わかんないローディングローディングすげーメッセージバラバラって流れたこれ今クスって何この場にいいワックスの人がいないってことだけ旅行かいます kikimimi: てあげてる写真集お渡し会と私は日も OK なんであの後の作業は全部ビームなんですけどあの家で働いてる人たちは日も使えないんであのそっからきっととの連動とかもあるんで設定してますかるパックもさすがに入りと変数を言いまくりすることはないぞぺってそうだけどガルパ君の声が聞こえないとされてんだよね kikimimi: なんか雨マイクがなんかうまくマカオと開いてないんじゃないかもう今車に俺はないと思うって言ってもしなかったような感覚論タクシーとかその VI 住んでいますが価値があるのは驚き最初に話してると思うよ俺はそうですかはい大丈夫ですよ意外にいるか kikimimi: 別シートこだわりを作らないといけないですよなそうなのですごいは今はそれを否定するジェットシェルって8エスケープアスタリスクとかの扱いが立ったりするじゃんあの保管するためのバクスラでエスケープしないといけないとかあそれこの前あの新卒研修行ってた時サポートした時にそれで困っててアプリ kikimimi: Shell parameter 文字を教えちゃんと最初に教えるしかないっていうのはあると思いますけどね間違いの部分もあるんで覚えることが覚えることが多いのは間違いないと中でエクスプラネーションとか展開してでも抑制できまのバーストパールやって君は来ずそのモバイルシステムするみたいに欲しいそれがもデフォルトなっちゃいました kikimimi: ライセンスの問題でセットしてるんだったんですもんね gpl が嫌という言葉と違ってみんないみたいな話した方が全然違う話なんですけどもないパンは何で. PM にレーニンサブルーチンみたいなのを書きたいんですかこれはですねあのーまずですねあのある数があった時にその声をテストするための行動を食っても試せるようにしたいみたい kikimimi: 済むからとかそういうえっとですねあのこれ半分教育も入ってるんすよまりさのモジュールの書き方とかクラスの書き方みたいなのを教えて行く時にそのちょっと書いてはすぐコマンド行から動かすんでその他してうまく動いたものを組み合わせてまた新しいメソッド借りてみたいなの子ステップバイステップで教えていくっていうそういう教育プロセスと組み合わせては基本的にテスト書かなくて呼ばないよねっていうのを買いたいそのテスト書く前からどのコマンド行で使いながらこうこんなこんな過疎メソッドがあると便利だよねこういう風なのを避ける男と男のデータ変換できるよね皇室御するとこの結果が帰ってくるよねみたいな濃厚をボトムアップに積み上げて kikimimi: 例えば最初からその最初に例えば. PM じゃなくて本当. PL 的な感じで手続き的なものを買っていうよりかは足をもうちょっとモジュール化. PM か書いたほうがいいよって言うを叱って欲しいそうですねそこはですねと PL の前にパールのベルトをしてるんですよまずコマンド業法とその. PL を省いてコマンドワンライナーでスタートワンライナーと PM を直結させるみたいみたいなのにしたいってことなんだそうやそういうプロセスが一番初心者にとってサマーランドが短くて語学びやすいってんですねあとついでにコマンド熊野古道 kikimimi: あのパールのでバンカーがすぐ使えるさっきみたいに車の実行できる PM に出力と頭に perl スペース- D って書くだけで馬鹿に突っ込めるんで即座にこのメソッドを試せるありました他のネタにスイッチしてください明日のゲットでお花でもよくあるんでますゲットぷとをロールでやると同じような感じでコマンドとして使えるようになるのでますねあのテストか基本的なテスト書くのとあと大工とかあの辺で kikimimi: えっとえっと何をあげています次回開催を入れたらどうですかね僕別にいつでも多分できると思うなら他の人はなかなか難しいとも言えないからゴールデンウィークの2日とか4日とか5日とかでもいいですかそれ全然わかんない基本的大丈夫ですお店ゴールデンウィーク
ところで、八王子は納豆うりきれてません。
こちらからは以上です。