この記事は2023年12月アドベントカレンダー16日目の記事となります。
オンラインミーティングしていると、他の人のリアクションが無くて困ったことありませんか?
チームでは何度か話題に挙がっており、一応の対策は取られているものの、全員の納得感を得られていない感触でした。
これを打開できないかな?と、チームの誰にも何も説明もせずに試したことがありました。「なんで急にあんなことやり出したんだ?」状態だったので、ここで種明かしをしようと思います。
どんな課題?
課題だと思っているのは、チームからのリアクションがないことで、間違ったことを言ったのではないかと不安になったり、同意も不同意も得られず先に進めなくなることです。
私は1対1で話している相手を爆睡させるほど抑揚がなくフラットで超長文心地のよい喋りを得意とするせいか、相手からリアクションがないと、私の説明が判りにくかったのか?、どこかに問題があったか?などと思いながら、同じ話をいい方を変えて繰り返し説明することがあります。聞いている方は苦痛でしょうし、私も午後1には喉が潰れて辛いです。
ふと考えてみると、オンラインミーテイングになる前の対面の時には、リアクションがないと感じたことはあまりありませんでした。誰も何も言わなくても、です。体が動いていたのだと思います。しかし、オンラインミーテイングでは何も言わなければ「無」しかありません。つまり、こんな仮説が立ちそうです。
リアクションが「ない」のではなく、リアクションが「わからない」
我々は普段「Gather」というツールを使用しています。例えば、ソースコードを表示したVSCodeを画面共有して説明している風景はこんな感じです。
左の方に1cmくらい見えているのがGatherです。Gatherではサムズアップのようなリアクションをするのですが、数秒で消えてしまうので、見に行った時にはもう消えています。顔でOK感を表現してくれていても、やはり見に行った時には能面しか見えません。
致命的なのは、説明している私がみんなのリアクションを知りたいのに、その私が最もわからないということです。見なくてもいい時にはみえているのにね。
じゃあどうするか?
対面と同じ体験を得る方向(=カメラで体の動きを見せる)は難しいでしょう。上で見た通り、オンラインミーティングでは表情と資料を同時に見るのは難しいためです。
以下2つを考えてみます。
- リアクションが消える → リアクションを残しておけるようにする
- しゃべらないと「無」しか伝わらない → 機械にしゃべらせてみる(娯楽感覚に持っていく)
リアクションを残す
サムズアップのようなリアクションをずっと残すことはGatherの設定では無理そうでした。
そこで、あまり役に立っていない(表情見てないので)カメラ部分を奪い取ることにしました。こんな感じです。
鏡文字になっているのでわかりにくいのですが、「完全に同意」と書いています。
他の人にはちゃんと見えています。これで後から見に来てもずっと見えていますね!
設定方法
Gatherのカメラを直接奪い取る方法はわからなかったので、カメラデバイスを静止画に向けることにしました。いわゆる「仮想カメラ」というやつです。今回は「OBS」を使いました。
最初にシーンを作成します。
表示するリソースの入れ物のイメージです。「メガネ男現る」という名前にしています。
次に、ソースを作成します。
「テロップ(完全に同意)」が「テキスト」というソース、「画像(メガネ男)」が「画像」とうソースから作ったものです。並び順も大事で、上にあるものが最前面に表示されます。そのため、上記の設定では、画像の上にテロップが乗っていることになります。
テキストにはこんな感じに設定しています。
画像はこんな感じにパスを指定するだけです。
あとは、「仮想カメラ開始」ボタンを押下すればOBSの設定は終わりです。
こうすると、カメラデバイスとして「OBS Virtual Camera」が見えるようになるので、これをGatherのデバイスから指定します。
機械に喋らせる
「完全に同意と喋ればよいだけでは?」ですが、それが出来ていたら悩みません。気軽に、罪悪感なく(=キャラが喋ったように錯覚させる)、楽しくできる方法が欲しいのです。
以前、チームでずんだもんで盛り上がった(?!)ことがあったので、ずんだもんにしゃべらせてみることにしました。ずんだもんに言われたら、仕方ないなーと思ってしまいますね!
というわけで、「VOICEVOX」を使いました。
設定方法
VOICEVOX
VOICEVOXにテキストを入力します。こんな感じです。
残念ながら、VOICEVOXから直接Gatherに音声を流し込むことはできません。マイクデバイスとして振る舞うこともできず、私の声もマイクから載せたいです。
つまり、以下の機能が必要です。
- VOICEVOXをマイクデバイスに見せる(仮想オーディオデバイス)
- 私が喋る声(マイク)とVOICEVOXをミックスしてマイク入力にする(ミキサー)
- VOICEVOXのゲインが何故か低いので引き上げる
仮想オーディオデバイスとして「VB-CABLE」を使いました。私の声とVOICEBOXとのミックスには先ほどと同じOBSを使いました。macbookの場合、OBSを使わなくてもVB-CABLEさえあれば声とミックスできるのですが、VOICEVOXの音が他の人には聞こえにくかったようなので、ゲインを引き上げるためにOBSを使っています。
こんな感じの音声データの流れになります。
VOICEVOX、私の声 → OBS → VB-CABLE → Gather
OBS
ソースに音声キャプチャーを追加します。「voicevox音声キャプチャ」という名前にしました。
アプリケーションを選んで音声をキャプチャーすることができます。すごいですね!古いOBSでは出来ないようなので、ご注意ください。
音声ミキサーで、上記の音声キャプチャーを設定します。
ゲインを引き上げるので、設定前の音量のトグルは100%にします。設定から「フィルタ」を選択します。
「+」ボタンでゲインを追加しました。コンプレッサーはどっちでもいいです。
「閉じる」で閉じて、右下付近にある「コントロール」の「設定」ボタンを押下します。
「音声」を選び、詳細設定から「モニタリングデバイス」として「VB-CABLE」を選びます。
OBSは、配信者が使うツールなので、基本的には収録した音声は録音されて終わりです。つまり、Gatherのマイクには入りません。そこで、モニタリング用に仮想オーディオデバイスであるVB-CABLEを指定して、収録する音声を横流しします。
ちょっと裏技のような使い方かもしれません。
VOICEVOXから出てくる音はVB-CABLEに流れてしまうので、自分のイヤフォンから聞こえないのでは?ですが、これはVOICEVOX側の出力がイヤフォン(下記)に向いているので、そこから聞こえるので大丈夫です。
下記のVOICEVOXの設定では、「Shure MV7」という出力デバイスから音が出ます。
最後はGatherの設定です。マイクに「VB-Cable(Virtual)」を指定します。
チームの反応
狙い通りですね(ニヤニヤ、あれ?これが狙いだっけ??)
文字変わっているw
そうです。これから、ここでリアクションするからね。
それ、ずんだもんじゃないから
やばい、超冷静じゃん。
え、なんのエクスキューズもないの?!
あれ、やっぱり説明いりますかね・・・
まとめ(結局どうなった?と反省点)
- カメラに表示された「完全に同意」を読んでもらえず。口頭で説明しなくてもわかるソリューションのはずだったのです。おかしいな。
- VOICEVOXに手入力しないとしゃべらないので、適切なタイミングで私がリアクションを返せない・・・(もうその話題は終わっている)
正直にいうと、何となく笑いが取れたので、ニヤニヤしている内に色々と検証するタイミングを逃してしまいました。いまでは「そのネタまだやっているの?」くらいではないでしょうか。検証できないと次に進む方向がわからないので、検証は大事だなと思いました(強引にまとめ)。
そうですね、次は、音声をリアルタイムでずんだもんに変えてリトライしてみたいと思います!(単にやってみたいだけ)
ここまで読んでいただき、ありがとうございました。
なんかいる!!
謎技術なんだけど