UTの回顧法用に画面遷移スライドショーを簡単に作る

ユーザーテストでタスク完了後などにふり返りでインタビューをしますが、その時により記憶を鮮明にしながら振り返ってもらうために各画面をもう一度見せたいことがあります。しかし、ECサイトの申し込みフォーム等だとブラウザのバックでは単純に戻れなかったりしますし、最初から辿ると再入力などでもたつきがちです。

そこであらかじめスクリーンショットを用意してスライドショーで見せたりするわけですが、それにもいくつかハードルがあります。例えば縦に長いスクショ画像を一般的な画像ビューワーで表示すると、大抵は画像全体がウインドウに収まるように表示されてものすごく細長~い状態になったりします。それを適切なサイズにズームさせなければなりません。また参加者の目の前にあるタスクに使ったPCをモデレーターが別席から操作するのにマウスだけですべてのオペレーションをしたいのに、例えばWindows標準の「フォト」アプリなどは画像の切り替えがキーボードの左右カーソルキーでしかできません。また理想の画像ビューワーがあっても、クライアントのPCに許可無くインストールできなかったりすることもしばしば。

というわけで、理想の回顧法向け画面遷移スライドショーができるスクリプトをHTML + JavaScriptで作ることにしました。HTML + JSならインストール不要でブラウザで開くだけです。作るというか、ほぼほぼGitHub Copilotに希望を伝えて作ってもらったというのが正しい。生成AIスゴい!何度か追加プロンプトを入れて書き直してもらいましたが、直接書いた行は1割もない気がします。

■設定した要求仕様

  • マウス左クリックで次、右クリックで前の画像を表示する
  • 幅を固定で表示し、縦にはみ出る分はホイールでスクロール
  • 初期位置は画像の一番上(ファーストビュー)を表示

基本的にこれだけ(以外とこれができる画像ビューワーがない!)。

本当はフォルダ内の画像ファイルリストを自動的に取得して先頭から順に表示するようにしたかったんですが、ブラウザのセキュリティ仕様的にJavaScriptでローカルフォルダをスキャンすることは不可能だったので諦めました。Node.jsのようなフレームワークを使い始めると受け渡しが煩雑になってしまい本末転倒になってしまうので。

■完成したコード例

index.html (HTMLファイル)

const images = {}; の中に画像ファイルを列挙します。”で囲って、最後に,をつけてください。必要な数だけ増減OKです。このhtmlファイルがあるディレクトリに画像ファイルを置く場合の例です。例えば「画像」というサブフォルダに入れるなら、

styles.css (スタイルシートファイル)

ポイントとしては、6行目のbackground-colorを変更すると、ウインドウの余白部分の色がかわります。実際にそのサイトでウインドウを幅広くした時の背景色にあわせるとより本物っぽく見えるでしょう。

もうひとつ重要なのが18行目のmax-widthの値です。単純に100%とかだとウインドウ幅一杯に広がってしまうので、なんらか実際の表示にスケールを固定したいです。画像キャプチャに使うツールにもよりますが、今時のディスプレイは画像のピクセル数と表示サイズが1:1ではありません。例えば画像ファイルの横ピクセル数が1763pxでした。これをそのままmax-widthにいれると実際より大きく表示される場合があります。これは例えばWindowsならディスプレイ設定画面の「拡大/縮小」設定値に応じて調整する必要があります。写真のように150%だった場合、1.5倍に拡大されているので、max-widthには1763を1.5で割った数値を指定します。

script.js (JavaScriptファイル)

このファイルは基本的にいじらなくて大丈夫です。当初最後のファイルで左クリックすると最初の画像にループする仕様でしたが、連打しがちなのであえてループしないよう修正してもらいました。

画像キャプチャのコツ

後は画像を用意するだけですが、注意するのは毎回同じ幅でキャプチャすることです。縦の長さはバラバラでもスクロールするので構いませんが、横が違うと表示サイズが大きくなったり小さくなったりして見栄えが悪いです。

なので、毎回矩形範囲指定するようなキャプチャーツール/機能(macOSのShift + Command + 4とか)だととてつもなく面倒です。ウインドウ範囲や繰り返し同じ範囲をキャプチャしてくれ、なおかつ連番でファイル名をふって保存してくれると良いです。Windowsだと古くはWinShot辺りでしょうか。Windows11で動くかわかりませんが…

Webサイトの場合、オススメなのはFireShotという拡張機能です。

  • 長いページを自動でスクロールさせて連続キャプチャし、1枚の長い画像につなげてくれる
  • 今みえている範囲だけのキャプチャも可能
  • ファイル名の初期値を日付や連番など柔軟に設定できる
  • 開発者モードでスマホ表示にしていても使える
  • 有料版もあるが無料版で基本的に充分事足りる

といった特長があります。今回のようなスライドショーを作る以外でも普通に便利です。

■まとめ

マウス完結で簡単に画面遷移スライドショーができるツールをHTML/JavaScript/CSSだけで作成しました。アプリインストール不要でローカルファイルで実行できますし、ブラウザ内で表示されるので、Webサイトのキャプチャなどはそれなりにリアルに提示できます。参加者とモデレーターがそれぞれマウスを持っていれば互いに「ここが~」などとポイントしつつページを行き来できるのも便利だと思います。

そのままWebサイトにアップしてURLを共有すれば誰かに見せるということもそのままできます。リモートUTなどでは遠隔の参加者にアクセスしてもらい、Zoomのリモートコントロールで双方が操作することは可能そうですね。

是非お役立てください。

RODE Wireless Pro用ネックストラップハンガー Ver3

RODEのクリップ型ワイヤレスマイクWireless Proをユーザーテスト/インタビュー案件で使用する際、色々な服装の参加者が入れ替わりいらっしゃるので、Tシャツのようなクリップ止めできる胸ポケットも合わせもない服装の方でも対応できるようネックストラップにぶら下げるということをしています。マイクがきちんと上を向いてぶら下がるようにするのに3Dプリンターでハンガーを作っていました。

最初期のバージョンがこちら。前モデルのWireless Goシリーズ向けに制作したもの。

その後に発売されたWireless Proでは本体形状こそほぼ同一なものの、専用充電ケースが付属するようになり、上記ハンガーを取り付けたままではこのケースに収納できなくなり、改良したのがこちら。

今回、あらためてイチから見直しマグネットも不要で簡単に脱着でき、よりしっかりと固定できるようにしたのがVer.3です。

クリップ部分に下から差し込むだけ。上のリングにストラップの紐を通して使います。

この通り、装着したままでも充電ケースにばっちり収まります。

今後4人のグループインタビュー案件を担当する用に1セット追加購入して2ペア4台になったので、せっかくなので色分けしてみました。今導入を迷っているこちらのミキサー兼オーディオI/F ZOOM PodTrak P8のカラーコードに沿って、CH.1~4の色で赤、オレンジ、黄色、緑となっています。(もしかするとCH.1はピンク?)。

更にこの4色を含むこちらのネックストラップも注文済み。

残念ながら長さ調整機構がないので、セリアで別途コードストッパーも買っています。

これで視覚的にも鮮やかでわかりやすいマイク環境が整いそうです。

こちらのRODE Wireless Pro用ネックストラップハンガーを御所望の方がいらっしゃいましたらコメント等でお知らせください。個数にもよりますが500円/個程度で頒布いたします。

現物確認できていませんが、おそらくWireless GO/II、Meでも使用できると思います。

メーカーの違う2.4GHzワイヤレスマイクを混在させると混信以外のところでハマるかも?

先日参加者4名のグループインタビューをお手伝いしました。私がモデレーターとして入って計5名の音声をZoomで中継する形です。先方には同時通訳者が入ってクライアントが聞く、という座組です。

当初、レンタルインタビュールーム備え付けのバウンダリーマイク(卓上置きマイク)で事足りると中間クライアントは考えていたのですが、エンドクライアントは各個人へのピンマイク装着を希望。テストをしてみてダメだったら私がワイヤレスマイクを4台持ち込みましょう、ということになりました。

で、案の定やはりピンマイク(個人別マイク)だよねということになったのですが、こちらも少しハマったので覚え書き。

セットアップとしては手持ちのRODE Wireless ProとHollyland Lark Max DuoをMacBook Proに接続し、モデレーター用としてMacBook Proの内蔵マイクとあわせてAudio Hijackを使ってソフトウェア上でミックスしてLoopbackの仮想オーディオデバイス経由でZoomのマイク入力として入れる、ということをしました。

同じ2.4GHz帯を使うデジタル通信を使う製品なので同じ部屋で使うと混信して途切れたりが心配でしたが、それはまぁ一応大丈夫そうでした。しかしエンドクライアントというか同時通訳者の方から「ハウリング(エコー)して聞きづらい」と言われてしまいます。当初バックヤード側の設定ミスで会場備え付けのマイク音声がZoomに載ってたりして少しずつ改善はしていったんですが、やはり2組のワイヤレスマイクを全てオンにするとエコーすると。一旦は2組4台を使うのを諦めて、1組2台を2人ペアの真ん中に置いてしのいでいたのですが、それはそれでやはり声が小さい(遠い)と言われるので、休憩時間になんとかできないかと試行錯誤。

■デジタルワイヤレスマイクは機種毎に遅延時間に結構差がある!

結果として問題だったのは各機種固有の遅延時間でした。Wireless ProとLark Max Duoとで音声の伝送時間に差があり、結果的にMacに入力される声がズレるのでエコーのようになってしまうというわけです。基本的には1人1人の口元で音を拾うわけですが、多少の漏話(隣の人の声を拾ってしまう)がある距離だったというのもあります。

そこでAudio Hijack上で「Delay」ブロックを使って、タイミングを補正してやることで解決できました。

以下のスクショが実際に使用したAudio Hijackのレシピです。

3系統のマイク(左端上からLark Max Duo、Wireless Pro、内蔵マイク)のうち、もっとも遅延が大きいのがLark Max Duoでした。厳密に録音して波形をみて合わせるまではせず、モニターイヤホンで声や拍手を聴いて感覚であわせた限りですが、Wireless Proに80msの遅延をかけてやっとLark Max Duoとのズレがなくなった感じです。同様に(あまり遅れなさそうな)内蔵マイクにも50ms遅延を入れています。

ついでに説明すると、Wireless Proの音声は「Volume」ブロックで200%に上げたあとでMixerブロックに送っています。それを(別売り製品である)RX10のVoice De-noiseフィルターで部屋の空調ノイズなどを提言し、最終的に更に音量をあげてLoopDeckの仮想音声デバイスである「UT Mic」に送っています。Zoomのマイク選択リストにこの「UT Mic」が見える感じ。

フィルターを入れれば入れるほどその処理遅延は大きくなり最終的に映像とのズレが出てきてしまうので、あまり多くはいれない方が吉なんですが、Zoom側のノイズ除去との兼ね合いも測りつつ、こんな感じでやっていました。

その後気になって調べてみたんですが、こちらのNote記事に定量的に検証してくださった結果が載っていました。

https://note.com/ocdp10ply/n/n02b9cce5e45c

Hollylandからの出走者はLark Duo Maxではなくより新しいLark M2ですが、やはりWireless Proよりは遅延が大きい。さらに安価なBOYA製品はもっとヒドい、という結果だったようです。大変参考になりました。やはりTx側でデジタルエンコードしてRxでデコードするというプロセルが生じる以上、プロセッサの処理能力が如実に出るという感じでしょうか。最近のLarkはノイズキャンセル機能もあるので、そちらも負荷として遅延原因になり得るのかも知れません。またRODEが全般に優秀なのか特に上位モデルのWireless Pro故の結果なのかも気になります。

実はまた来月同じく5名の音声をミックスする案件があるんですが、Lark Max Duoは引退させてWireless Proをもう1組買うか借りるかしようかなと思案中です。というのも前回は自分のMacBook Pro+ Audio Hijackで帳尻を合わせられたんですが、次回は別のモデレーターが使用する場面があるんですよね。なのでPCに入れる前の状態でハードウェア処理で遅延まで解決している必要があります。

なので最近使ってなかった6chミキサー+オーディオI/FのZOOM F6を起こしてきてワイヤレスマイク4台+固定マイク1台を入れてやろうかと。これなら本体前面のフェーダーツマミを別個にひねるだけでバランス調節ができます。ただF6内蔵のディレイは30msまでなのでLark Duo Maxだと厳しい可能性があります。

ZOOM ズーム 32bitフロート録音対応 6chフィールドレコーダー F6

ZOOM ズーム 32bitフロート録音対応 6chフィールドレコーダー F6

71,455円(11/19 18:39時点)
Amazonの情報を掲載しています

■Auditionで追加検証

あらためてF6で検証してみました。マルチトラックでAdobe Auditionで録音した結果がこちら。拍手の瞬間を撮ったもので、上から

  • RODE Wireless Pro(緑)
  • Hollyland Lark Max Duo(紫)
  • XLR有線入力のマイク(黄色)
  • LRにミックスしたトラック(青)

という感じ。それぞれ記事執筆時点の最新ファームウェアを入れています。

やはり紫のLark Max Duoが明らかに遅く、Wireless Proは有線マイクとの中間という感じ。ピークの瞬間を速い方からタイムコードでみると、有線 0.962s、Wireless Pro 0.970s、Lark Max Duo 0.984sという感じなので、遅延量でいうと

  • Wireless Pro: 8ms
  • Lark Max Duo: 22ms

で、ワイヤレス同士で14msのズレがあるという感じですね。上記noteの記事の値とほぼ一致する結果となりました。

これくらいズレがあると、耳で聞いても拍手がパン!ではなくパララ!と複数人が「せぇの」で叩いたかなって聞こえ方になります。これで何言ってるかわからないくらい聞きづらいかっていうと微妙なところではありますが、やはり長時間集中して聞いたり、同時通訳しないといけないといった時にはこの差が疲労となってのしかかってくるんじゃないかと。

このミームと化している画像を貼らせていただきたい。

逆算してWireless Proに14ms、XLRマイクに22msの遅延をいれてやると波形もほぼ揃い違和感はなくなりました。拍手が乾いた「パン!」になります。F6のトラック別ディレイは30msまでですがなんとかその範囲で調整できたので良かったです。60msとか遅れるBOYAでは厳しかったところです。

■まとめ

互いの声を拾わないような距離の状況なら漏話リスクも少ないんでしょうが、静かなインタビュールームでテーブルを囲んで、みたいな状況だとこの遅延が致命的なエコーにつながる可能性があります。

そんな状況で複数のマイク、特に2.4GHzデジタルワイヤレスマイクを組み合わせて使う時はできるだけ機種を揃えましょう(同一機種で混線しないかという懸念もありますが、むしろメーカー側で検証して推奨台数なども出してれば安心かなというのと、実際に混線が問題になったことはないので、現時点では機種を揃える方がメリットは大きそう)。

遅延の大きい安価な製品でもむしろそれで同士で組み合わせて他を混ぜないなら問題は小さいかも知れません。

そしてとりあえず予算が許すならRODE Wireless Proは低遅延さでもかなり優秀らしいぞと。完全遅延無しの業務用のB帯アナログワイヤレスマイクよりはお安い。ただノイズキャンセル機能がないので、PC側やZoom側でなんとかする必要はあるかも知れません。

また今回は5マイクなのでたぶん買わないと思いますが最大4chで足りるのであれば、マイク子機4台の製品も見つけました。

これの遅延具合は不明ですが、この4台で完結する分には問題ないでしょうし、ノイズキャンセルもあるみたいで、それでいて4台で4万円はなかなかコスパヨサゲです。ただマイク個別の音量調節ができるか明記されてないのでできない気も。できたとしても小さい送信機の画面と少ないボタンを駆使して操作するのはインタビュー実査中にするのは厳しいかも知れません。

ワイヤレスマイクのレシーバーを見やすい角度で保持できるスタンドを自作

みなさん、小型ワイヤレスマイク使っていますか?Rode Wireless Go辺りから始まったバッジ型(?)小型ワイヤレスマイクの潮流は、ユーザーテストや1on1のインタビューでとても手軽に良質な音声収録を可能にし、かつマイク本体に録音もできる機種であればバックアップ録音や、事後の音量バランス調節なども行える保険として有益です。

私もこの辺りを実際に現場に投入して一長一短ありつつも便利に使っています。

されこれらのマイクの共通の特徴として、マイク子機(トランスミッター)2台とPCやビデオカメラに有線でつなぐ親機(レシーバー)から成り立っています。レシーバーにはリアルタイムの音量(レベル)やバッテリー残量など重要な情報が表示されています。これをごちゃつきがちなモデレーターのデスクに見やすい位置に置いて、ステータス確認したい時にat a glance(チラ見)でチェックできるようにしておきたい、というのが本記事のトライアルです。

これらのレシーバーは軽量な上に背面や底面にカメラのコールドシュー(ストロボを取り付けるレール)につけるクリップがついていて、安定性がよろしくない。カメラの上にとりつける時はありがたいスタンドが、安定悪くしていて机の上に置いておくとケーブルに引っ張られたりしてすぐにクルクル明後日の方を向き出してしまいます。また仮に自分向きに置けたとしても、RODE製品は上面、DJIやHollylandはフロント面にディスプレイが来るので、覗き込むなりしないと見えなくて微妙なストレス!

これを解決するスタンドを3Dプリンターで自作してみました。その完成品がこちら!

「コールドシューを斜めにしただけの台~」(CV.のぶ代)

RODE型のレシーバーは下から差し込むようにつけます。

RODE Wireless Pro取り付け例

DJI/Hollylandのように薄い面がモニタの機種は台を180度逆向きにして差し込みます。

Hollyland Lark Max取り付け例

PCにUSBケーブルでつないで脇に置いておけば安心です。ままでクリップでそのケーブルに挟んで固定してたりしましたが、それだと下を向いちゃったりでいまひとつでずっと気になってたんですよね、、

なおコールドシューのパーツはRemix OKで公開くださっていた拾いものをベースに、両側から刺さるように改造した上で流用させていただいています。

さらに3DプリントのPLA素材なんてスカスカで軽いのでちょっとなにかにぶつかっただけで動いてしまいます。そこで、テテーン!

底に穴をあけてジンバル用のウェイトを入れてみました。

買うとちょっと高いですが、前に別のことで買って使わなくなっていたものを流用。これでズッシリさあが増して動くにくくなった気がします。さらに底に滑り止めのシートも貼ってみてもいいかも知れません。これがぴったり刺さる穴径がなかなか作れなくて三度目の正直でやっとピタっとはまりました。手ではもう抜けません、、必要なら三脚ネジになにかネジこんで引っ張るとかすればいいかも。

stlファイル置いておきます。ほしいという奇特な方はどうぞ。利用せていただいたコールドシューパーツのライセンスが改変OK、商用NGなので直接の販売はできません、送料実費くらいでならどうだろ…まぁいざとなればもっと緩いライセンスの部品をくっつけなおすだけなんですが。

今回利用した元パーツもクレジットせねばなりません。こちらの作品です。Ratasichさんありがとう。

そして再頒布は同じ条件で公開しなければならないので、ご利用になる方は以下をお願いいたします。クリエイティブコモンズライセンスのBY-NC-SA 4.0 DEEDです。

  • 再頒布、改変はOK
  • 元製作者のクレジット必須
  • 商用不可

■市販品で作る

今回の計画段階で、ありものを組み合わせるだけでも近いものはできるなと思いました。

コールドシュー部品はこれがおすすめ。両側から差し込めます。三脚ネジ互換のネジも付属しています。

これを何か小さめのミニ三脚に装着するだけです。三脚側もネジが出ているのが多いので、メス-メスのアダプタ。

あとは向きが変えられる雲台がついたミニ三脚ですね(もしくは三脚+雲台)ですね。個人的にはあまり背が高くなりすぎず、値段もそこそこに抑えるとこんなんかなぁ。

百均とかにいけばなんかあるかも。個人的には「これ!」ってのがなくて「作っちゃえ」となりました。結果的にフットプリントが小さくできたので、色々なものがあって渋滞しがちなモデレーター、オペレーターのデスクで邪魔にならなくていいんじゃないかなと思います。

より扱い易いWhisper派生ツールstable-tsを試す

前記事でWhisperというAI音声書き起こしツールを試し、これまで使用していたPremiere Proよりもかなり日本語文章として自然な結果が得られました。

その中でいくつか気になっていた、同じワードが反復して出てきてしまう現象について、VADという発話区間を識別する下処理をかけると良いのではという情報を発見しました。

標準では機械的に30秒ごとだかのセグメントを切って認識をしているところを、事前に声がある区間と無音区間または雑音の区間を切り分けて、発話のまとまりをしっかり識別してから処理にかけるという感じでしょうか。

VAD自体は一般的な処理の名称で、これまたAIで処理するSileroVADというツールが優秀っぽい。

そこで今回の記事ではSileroVADでの下処理→Whipserで書き起こしをまとめてやってくれるstable-tsというツールを試して見ることにしました。正式名称は「Stabilizing Timestamps for Whisper」みたいです。文章だけでなく単語レベルで正確なタイムスタンプを生成するのが主目的ぽいですが、その過程でSileroVADやWhisperも処理してくれます。

前回と同じくWindowsにPythonをセットアップし、pipでインストールしてコマンドラインから扱います。コマンドの構成はこんな感じ。

デフォルトで単語単位のタイムスタンプが有効なので、–word_level=Falseで無効にし、VAD処理をかけるため–vad=Trueを付加します。あとの言語やモデルの指定はバニラのWhisperと同じ感じ。

■結果比較

毎度の私のガジェットレビュー動画のサンプルです。

主にstable-tsとWhisperを見比べてみると、

  • Whisperで気になった短い語句の繰り返しがほぼなくなっている
  • 句点(。)がついている
  • ブロックが自然なところで区切られている

といった違いが顕著です。基本的にstable-tsの方が勝っている印象です。

またGPUのVRAM使用量もWhisperが13GBくらいだったのに対し、stable-tsは9GBくらいとコンパクトになっており、処理時間はバニラWhisperが16分の音声ファイルを5分40秒だったのに対しstable-tsは2分28秒。VAD処理をしているにも関わらず速いです。ちゃんと調べてないですがfast-whisperという小型軽量高速なフォークを使っているのかも知れません。これくらいならRTX4090のようなモンスター級のGPUがないゲーミングノートPC程度でもそれなりに実用的な速度で使用できそうです。

各ツールの製作者、コントリビューターの方々には感謝感謝です。

ローカルで書き起こしができるOpenAIのWhisperの精度をPremiere Proと比較してみる

UT/インタビュー調査の音声を書き起こして活用する際、案件の性質上、クラウドの書き起こしサービスは使えないことが多いです。そのため、従来はAdobe Premiere Proのローカル書き起こし機能を使っていました(競合のDaVinci Resolve Studioも最近ローカル書き起こしに対応したものの、タイムコード出力ができないっぽいので、拙作の動画眼3でインデックスとして使うには対象外となっています)。

Premiere Proの音声書き起こしは無料で使えるものの、残念ながら固有名詞の追加学習が行えません。UTでは機能名や画面名など固有名詞が頻出し、それが言及された箇所を検索したい場合が多いので、「ローカルで使え、かつ固有名詞学習ができる」書き起こしツールを渇望していました。

そこで見かけたのが、ChatGPTで有名なOpenAIが公開しているWhisperという書き起こし(ASR)ツールです。Webサービスとして有料で利用もできますが、ツールとモデルは公開されており、ローカル環境にインストールしてオフラインで無料で利用することもできます。また自分でモデルをトレーニングしてボキャブラリーを増やすこともできるようです。

昨年導入したRTX4090を搭載したWindows PCにインストールしてテストしてみました。

詳細なインストール方法は割愛しますが、Python環境があればインストールコマンド数行で導入できると思います。

また学習済みのモデルも大小様々な規模で公開されています。今回は最新で最大のlarge-v3を使ってみました。使用したPCはCPUがAMD Ryzen9/5900X、メインメモリ64GB、GPUがNVidia RTX4090(VRAM 24GB)のWindows 11機です。

■精度

動画と書き起こしデータをリンクして参照できる拙作「動画眼Lite」形式にして下記にサンプルを置いてみます。書き起こされたまま一切の修正を加えていません。

タイムコードの部分をクリックすると当該箇所が再生されるので、書き起こされた文章と実際の音声を比べてみてください。

以下はWhipserによる書き起こしのサンプルです。

まず大きく違うのは、1つのブロックの長さです。Whisperはかなり細切れで、1息の発話も分割されてる感じ。これはもしかしたらパラメーター次第でどうにかなるかも知れません。

あと気になるのは1:12~1:17のところで「で走行中にしか」が3回繰り返されてる点。ここ以外でも割とあちこちに同じ現象が出ています。もちろん実際に何度もこういう発話をしているわけではなく、エコーのようなものが発生しています。最初、STTシステムにありがちな音声の途中の変換候補のようなものが更新の度に書き出されているのかなと思いましたが、必ずしもそうでもなさそう。–best_ofという候補数の増減オプションがあるんですがいじってみてもあまり効果がなさそうでした。そもそも実際の発話は1:16辺りなのに、1:12と数秒早い段階で出現してるのも不思議。

そんなこんなはありつつも、全体的な精度はかなり優れているという印象です。読んでて文章として成立しないような箇所が少ない。またeSIMのような最近のワードがしっかり書き起こしできるのは好印象。PremiereだとESIMになってました。

■処理速度、使用リソース

コマンドラインオプションは最低限で、パラメーターはほぼデフォルトの状態で、16分の音声ファイルを5分40秒ほどで処理できました。3倍速くらい。

処理中のGPU使用率はこんな感じ。ほぼ100%張り付きで、VRAMは24GB中、コンスタントに13.2GBほど使用していたようです。16GB搭載の4080や4070Superでも実用になるかな?

■使用感

whisperに食わせられるのは音声ファイルなので、UTやインタビューの動画がソースファイルの場合、音声を分離してやる必要があります。今回はVLCを使って実施しました。ひと手間必要ですが、まぁVLCなら複数ファイルのバッチ処理もできるので、まぁいいかな。

mp4ファイルを直接食わせられました。

出力は字幕データによく使われるsrt形式で書き出しました。動画眼3はこの形式のインポートに対応しているので簡単に元動画ファイルとかけあわせて上記の動画眼Lite形式のデモが作成できます。

インストールが若干試行錯誤が必要でしたが、whisperコマンドが使えるところまできたら、あとはまぁ簡単かなという印象。パラメーターを詰めれば精度や速度が上がるかもですが、ちょろっといじった範囲ではデフォルトが一番正確に書き起こしてくれた気がします。

■単語学習(まだ難あり)

finetuningと呼ばれるモデルの再構築よりも手軽な方法として、優先使用したい語句をプロンプトとして与えてやるという方法があるようです。語句を半角スペースで区切って、

のように与えてやります。ただし、この記事によると、initialとあるように、最初のブロック(ウインドウ)30秒にしか反映されず、2ブロック目は1ブロック目の認識結果でプロンプトが上書きされてしまう仕様のようです。

これを、最初から最後まで強制的にinitial_promptの内容を適用させるプルリクエストが提案されています。transcribe.pyというPythonスクリプトに対する改変なので、こちらの差分を見て、最新版のtranscribe.pyをテキストエディタで開いて適用させてみました(ピンクの行を削除し、黄緑の行を追加する)。ちなみに自分の環境では対象ファイルはC:\Python311\Lib\site-packages\whisper\にありました。再コンパイルも不要でwhisper.exeから–always_use_initial_prompt Trueオプションが使えるようになりました。

最終的に使用しているコマンドラインオプションは、

といった感じです。

ただ結果は微妙で、確かに誤認識していた箇所がプロンプトに加えた単語に置き換わってくれた箇所もあるんですが、逆に全然関係ないところでもその単語に引かれてみたり、しかも”トヨタ 日産 ホンダ”というプロンプトにしたら、「トヨタ 日産 ホンダ」というセグメントが大量に出現したりしました。もうちょっと研究が必要そうです。

やはり精度をあげるにはモデル自体を再トレーニングしないとダメかも知れません。

■まとめ

それなりの性能のPCが必要なものの、ローカルで実行でき、簡易的な単語追加も行えるOpenAIのWhisperを試してみました。

まだ色々パラメーターをいじったり、Pythonスクリプトで自動化やカスタマイズをする余地はありまsくりですが、とりあえずコマンドプロンプトでもPremiere Proよりもかなり「読める」書き起こしをしてくれるので、今後業務データを作る際にはこちらを使おうかなと思います。

2024.1.17追記:更に高速軽量で精度も高い関連ツールstable-tsを試しました。下記記事もあわせてご覧下さい。

RODE Wireless Pro用のネックストラップハンガーを作成

UT/インタビューで2人の音声を明瞭に収録するのに、RODE Wireless GOシリーズのような小型ワイヤレスマイクは重宝します。ただUTやインタビュー調査のように参加者が入れ替わり立ち替わりして、かつセッテイング時間もない、服装も様々、という場面では、クリップやマグネットで衣服に固定しづらいことも。

そこで、当サイトでは3Dプリンターでネックストラップにとりつけられるハンガーを設計して活用していました。直接クリップ部分にヒモをひっかけるよりも姿勢が安定し、マイクが常に上(口元)を向きやすいメリットがあります。

ハンガーを使ってストラップに吊り下げた様子

しかし、2023年秋に発売されたRODE Wireless Proでは専用の充電ケースが付属しており、このハンガーパーツと相性問題が発生しました。

ハンガーが干渉して充電スロットに刺さらない

7時間程度保つというカタログスペックですが、慎重を期して60~90分のUTセッション毎に充電しておこうと思うと、都度ハンガーを付け外しする手間はばかになりません。

そこでWireless Pro充電ケース対応の新しいハンガーを再設計することにしました。

完成したPro用ハンガーがこちら。

RODE Wireless Goシリーズでは別売りだったマグネットがProでは標準で付属していますので、これを活用するスタイルです。今回はスマホケースなどで使われる柔らかいTPU素材で出力してみました。マグネットを固定する仕掛けが最低限なので、より摩擦が大きく外れにくいことを期待しています。

実際にとりつけたのがこちら。本体側上部が一応引っ抱えるようになっているので、見た目よりはスッポ抜けにくくなっています。普通にブラブラ振り回すくらいでは外れなさそうです。

Proケース対応の新ハンガーをMagClip Goマグネットにとりつけた様子

そして問題の充電ケースですが、こんな感じで収まります。

充電ケースにセットした様子

送信機のスロットはセンターと左側です。センターはそのまま刺さりました。左側も外周のフレームが干渉してしまいマグネットがズレるものの刺さります。実用上は問題なさそう。そもそもマグネットなので最悪付け外ししても手間はほぼありません。

ちなみに受信機も同じ形状ですが、ネックストラップで吊る必要はないと思うのでここでは考えないことにします。右の受信機とセンターの送信機の隙間はギリギリなのでつけたままセットするのは無理っぽいです。

これでストレスなく実査中に充電ができそうです。

こちらのハンガーを使ってみたいという方で、3Dプリンターをお持ちの方は以下のSTLファイルをご自由にご利用ください。また自身で出力できる環境がないが欲しい!という方がいらっしゃいましたらコメントからお問い合わせください。送料実費くらいで頒布いたします。

こちらのストラップで検証しております。

ソニック ストラップ 多機能 丸ひも ストラップ 青 MH-223-B

ソニック ストラップ 多機能 丸ひも ストラップ 青 MH-223-B

390円(11/19 19:02時点)
Amazonの情報を掲載しています

ユーザテストにおけるダミー情報のデザイン指針

ユーザテスト(UT)で例えば利用登録タスクなどで個人入力をしてもらう際、被験者自身のガチの個人情報を入れさせるのは躊躇われます。プライバシー保護観点からも望ましくないですし、なにか注文操作をしてもらって(寸止めするつもりでいてもうっかり)注文が確定しまっても大変面倒なことになります。録画した画面にも映り込んでしまうので録画データの管理が難しくなったり、漏洩した時の被害低減の点からも避けたいです。

ので、相当な理由がない限り架空の個人情報を与えて「これを自分の情報だと思って使ってください」などとすることが一般的だと思います。本記事ではダミー情報を使ってもらいつつ、極力実際の利用状況から乖離させないための工夫をまとめてみたいと思います。

大原則としては、「本来の利用場面で発生しえない負担や違和感を上乗せしない」ことがポイントになると思います。

■入力負担を抑える

ほとんどのリサーチでは文字入力操作の可否や速さを観察したいということはないでしょう。であればそこに時間をかけさせる必要はありません。特に入力が遅い低リテラシー層の対象者の場合、入力内容の文字数や難易度が所要時間に輪を掛けて影響をします。

  • できるだけ文字数を少なく
  • 難解な読みを避ける(もしくはルビをふる)
  • 変換辞書で一発で変換できるものを選ぶ
  • メールアドレスに含める記号を最低限にする

などに注意しましょう。経験上、エンジニアの方はメールアドレスに息をするようにアンダーバーとか入れてきます(笑)。そしてシニアの方などが入力方法がわからず時間を浪費するのです。

またOSの予測変換を積極活用していい場合、したくない場合はケースバイケースだと思いますが、挙動は確認しておくのが無難です。苗字を確定しただけで名前が候補で挙がって来てしまうこともあると思いますので、それが問題になる場合はセッション毎に予測変換学習をリセットするなどの工程が必要になります。

■項目別ポイント

性別(とそれを連想させる名前)

性別自体は選択式なので特にダミー情報なく自分で選んでもらうでも良いと思いますが、名前も性別情報を含んでいるので配慮の余地があると良いと思います。女性なのに「太郎」と入力させられるのは違和感を覚えられるかも知れません。性別くらいはその人にあわせてあげたいものです。一方で提示シートを男女別で作り分けるのも手間で差し換えも面倒ですし、昨今では性自認が実性別と異なるケースにも配慮が必要だと思うので、私が自分でデザインする時は男女どちらともとれる名前にすることが多いです。「男女に使える名前」とかググればたくさん出てきます。その中で対象者の年代に偏りがある場合は、なんとなくその世代に馴染みがありそうな名前をピックアップする感じ(例:シニア中心のUTなら、あまりキラキラしてない昭和っぽいの名前にするなど)。

氏名

全体的に一目見て覚えられ、読みも頭に浮かぶものが理想です。

Amazonのテストだからって「亜麻尊 太郎」みたいな苗字にする必要はありません。普通に日常的に聞き馴染みのある名前で良いと思います。ただ「楽天 太郎」とか「豊田 太郎」のように元から日本語として馴染みがあり、読みもすぐ想像できるようなものなら使っても良いと思います。明らかにダミー然としていることのメリットもあるかなと。

「太郎」と「太朗」、「裕子」と「祐子」みたいな紛らわしいバリエーションが浮かびそうなものも避け、小学生でもさらっと書ける名前、くらいのイメージで考えてみてください。

住所

住所も特に架空のものをでっちあげるより、その会社や会場の所在地など実在のもので良いと思います。特に郵便番号からの自動入力機能がある場合などは実在の住所でないと無駄な手間が発生する可能性もあるので、無難にリアルで馴染みにある住所がいいでしょう。

建物名や部屋番号まで正確に入れてもらう必要がない場合は番地までに留めた方が時短になります。逆にSNSなど大まかな都道府県や市区町村までしか要求しないフォームでもデータシートにはしっかり番地まで記載しておき、そこから必要な部分を選んで入れられるかと評価する方が実使用場面に近いと言えるでしょう。

電話番号

電話番号を入れる欄だとわかってくれたことさえ検証できれば、入力できるかどうかは検証外なことがほとんどでしょう。03-1234-5678とか、携帯番号なら090-1234-5678とかで良いんじゃないかと思います。自分の番号と同じくらい簡単に打てるという感じで。

国際表記で+81が付与してあって、先頭0抜きで書いてほしいフォームなんかもあると思うので、市外局番/0A0部分くらいはリアルにしておけば良いんじゃないでしょうか。

生年月日

1桁と2桁を混在させる位でしょうか。0埋め周りの挙動をみたりできます。あとプルダウンのスクロール幅が大きいケースを見ておくために、日付を大きめ(遅め)にしたりします。3月20日とか。

年は参加者層の平均くらいを設定します。和暦か西暦かは対象フォームにあわせるか並記するくらいで良いでしょう。

メールアドレス

ここは一字一句正確に記載することの負担が大きい項目なので、慎重にデザインしたいところです。入力だけしてもらえばなんでもいいのか、実際にサーバーに送信して返信を受信できる必要があるかによっても自由度は違ってくるでしょう。後者の場合はさらにセッション毎に違うアドレスにする必要があるかどうかなども検討します。

まずメールアドレスの様式はRFC5321/5322などで既定されています。

  • 以下の文字を含むもの / ! “ # $ …
  • @が2つ以上含まれるもの
  • @の直前が英数字以外のもの例)taro.@yamap.co.jpはNG.
  • .(ドット)または_(アンダースコア)が2つ以上連続しているもの
  • 最初の文字が英数字以外のもの

最低限それには沿っておきましょう。

開発者/リサーチャー目線でデザインすると「formtest2024_01@gmail.com」みたいにしがち。プロダクト名やリサーチテーマなどを入れて名前空間を意識してユニークにして、etc.、etc.。こうしたアドレスは不必要に長いし、アンダーバーとか世の中の非IT層の人は滅多に打たない記号が入っていてよろしくないです。だからといって「formtest」みたいに複合語を区切りなしで使うと綴りが読み取り辛くなります。どうしても区切りを入れたい場合はせめてハイフンが良いでしょう。フリーアドレスなどで取得が必要な場合、一般的なワードは既に取られていることも多いですが、うまく数字などを組み合わせてデザインしましょう。

視認性の面では、「0とo」「1とl」「mとrm」など見分け辛い文字を使わないこともポイントです。もしくは先にも書いた通り、それらが充分見分けられるフォントとサイズで提示しましょう。

受信が必要になるタスクの場合、Gmailなどフリーアドレスを利用することになるでしょう。Gmailなどは+を入れて派生アドレスを簡単に増やすことができるので利用すると良いでしょう。例えば「hogehoge@gmail.com」というアドレスを取ったとして、「hogehoga+01@gmail.com」とか「hogehoga+02@gmail.com」は全て同じメールボックスで受信されます。タダとはいえ無駄にアカウントをたくさん作ってサーバーリソースや名前空間を圧迫するのは避け、節度をもって利用させてもらいましょう!なお共通メールボックスを利用する場合、前セッションのメールは削除するのも忘れずに。

クレジットカード情報

これも桁数さえ合っていれば基本充分だと思いますが、クレジット番号チェック機構が備わっているフォームの場合は、カードブランド毎に決まっている動作検証用番号を使うとよいでしょう。

手元のカード券面から必要な情報が読み取れるか検証したい場合、記載情報を記入するとクレカっぽい画像を生成してくれるジェネレーターサイトを使うと良いかも知れません。下の方でVisa、Masterだのイシュアを選択すると数字はランダムで生成してくれるので、名前だけ自前で決めた名前に直して画像を取得すればOKです。

■ペライチにまとめて記憶負担を抑える

本来自身の名前や住所、電話番号などはほとんどの人は暗記しており負担なく再生できる記憶であるのに対し、UTの最中に唐突に与えられたダミー情報はそれを覚えて再現する負担が加わります。そこに被験者が認知リソースや時間を割かなければいけない状況を極力排除しなければなりません。

例えば、「今日は自分の名前のかわりに山田太郎を使ってください。」「あなたの電話番号は090-1589-3xxxです。住所は…」などと口頭で伝えたとして、実際の入力フォームを目の前にした時にスラスラと書き出せる人がどれだけいるでしょう。名前、住所、電話番号、メールアドレスなどあったら短期記憶に保持できる情報量ではありません。

なので紙に印刷するなどして手元に置いてあげることが有効です。「ここに書いてある内容をご自分の情報だと思ってお使いください。必要だと思った時にいつでも見ていただいて構いません。」などとして差し出すのです。Zoomなどでリモート実施する場合は、仕方ないのでテキストでチャット欄に貼ってあげるなどします(コピペしてほしくない場合はその旨を伝えます)。

ちなみにこの情報シートをデザインする時、必要な情報だけを利用する順番に記載するとヒント/バイアスになってしまいます。実際のフォームにはない情報もある程度は交え、順番も実際のフォームで求められる順とは変えておきましょう。もちろん目的の情報を探すのに苦労するほど複雑にする必要はありませんが、、、

また厳密には見出しが対象フォーム上の項目ラベルと合致してヒントになってしまうのも避けたいです。フォーム側が「名前」になってたら、提示シートは「氏名」とか「姓名」などにします。

あと充分なフォントサイズで印刷してあげることも重要です。シニアの方が都度都度メガネをズラしたり紙を手に取ったりすることも本来の利用場面では起こりえないことです。特にメールアドレスはしっかり識別できる字体とサイズにします。

■提示シートサンプル

例えばこんな感じでペラ1枚作って差し出すといいと思います。

流用できるようWordのファイル置いておきます。メールアドレスは実在するといけないので少し長めにしています。現時点では存在してなさそうですが、流用される時はメールアドレスだけは実在して持ち主に迷惑がかからないよう注意してください。こちらなどで実在確認ができます。

■まとめ

思いついたポイントを書き連ねてみたらだいぶ長くなってしまいました。たかがダミー情報にここまで配慮する!?と思われたかも知れませんが、できるだけ普段の利用状況に近い形でタスクに望んでもらう、というUTの大原則に従うならばこういう配慮は有効かなと思います。また別段リサーチ毎に変える必要もないことも多いと思うので、一度作り込んでおけばシートも含めて使いまわしもできるんじゃないでしょうか。

他にもこんな点を留意したらいいんじゃないかというアイデアがありましたら是非コメントでお寄せください。

夢のUTラボの天吊りPTZカメラをお手軽実現!~OBSBot Tail Air

90年代~00年代頃、ユーザーテスト(UT)と言えば専用のラボで実施するのが当たり前でした。今でも大きな会社さんでは自前のリサーチラボを持ってたりしますが、一方でUT自体が一般化するに連れ、

  • 普通の会議室で民生用ビデオカメラ機材を使ってお手軽に実施することも増えた
  • Webやアプリなど画面内の出来事が観察対象で画面キャプチャを使うことが増えた

等の理由で本格的なUT用ラボを使ったことがないという人も増えているんじゃないでしょうか。ここでいう本格的なUT用ラボの特徴は、

  • ドラマの取調室みたいなマジックミラー越しに観察できる部屋(観察ルーム)が隣接している
  • 天井に監視カメラがついており、観察ルームからカメラの向きを操作して任意の場所をアップで映せる

といったところです。カーナビとかデジカメといったハードウェア製品のUTだったり、インタビュー調査ではまだまだカメラで実像を映しての観察や記録もニーズがあり、個人で小規模な案件を中心にお手伝いしている私などは、「一般の会議室UTで、本格的なUTラボに近い実施環境を実現する」が永遠のテーマです。

本日ご紹介するのは、そんな憧れの天井遠隔操作カメラに近い機材を持込み&無工事で実現できる製品です。その名はOBSBot Tail Air。クラウンドファウンディングで先行ゲットしたので動作チェックをしながらこの記事をしたためていきます。

2023.12.6追記

実際に現場で使ってみましたが、あまり距離を離してしまうと画角的には不足を感じるかなと思いました。天井とか被写体から遠い位置に設置してしまうと、部屋の全景を撮るとかにはいいですが、手元のスマホ画面とかを覗き見られるほどのズーム倍率がないです。しかも本機は光学ズームではなく4倍デジタルズームなので、拡大するほどに画質は落ちます。それでさえ4倍では足りないという場面もありました。原理、機能的には天井カメラに近いですが、レンズ画角的にいうと代わりになるものではないなという感じです。

■何故UTでPTZカメラが必要か?

PTZカメラとは「パン-チルト-ズームが遠隔操作できるカメラ」を意味します。パンとチルトは左右と上下の動きのことです。上下左右動作とズーム動作の頭文字をとってPTZです。

UTでは製品を操作する参加者の手元だったり表情を観察するのに顔を撮ったりしますが、参加者が持ち方や姿勢をコロコロ変えるので、都度カメラもそれを追って調整する必要が発生しがちです。そんな時、同室内のモデレーターや撮影スタッフがいちいちカメラを動かしていたら効率も悪いし参加者にも「撮ってる」圧を与えてしまい好ましくありません。そんな時に別室の観察スタッフがリモート操作でカメラをうぃーんと操作できると色々捗るのです。

しかしこのPTZカメラは普通に買うと軽く数十万円します。天井に据え付けるとなればさらに工事費がかかりますし、社内の会議室とか外部の貸し会議室では現実的ではありません。

■OBSBot Tail Airとはどんな製品?

OBSBot社は小型で安価なPTZカメラ(=パン-チルト-ズームができるカメラ)をリリースし続けている会社で、最近ではOBSBot TinyシリーズというUSB接続のWebカメラ版がメジャーです。最近はZoomなどで見学者に配信することも多く、OBS Studioなども普及してきているので、USBでPCに直接映像を入れられるWebカメラタイプは好都合です。価格も4万円程度とWebカメラとして高いですが、ビデオカメラよりは安い、PTZカメラであることを考えると激安とも言えます。遠隔操作は専用PCアプリか専用リモコンを介して行えますが、いくつか難点もありました。

WebカメラタイプのOBSBot Tinyの難点

OBSBot Tinyシリーズは私も3台ほど導入して使いまくっていますが、PTZ制御周りで弱点もあります。ひとつはPC/Macの制御アプリを使う場合、USBで直結しているPC上でアプリを動かす点。当たり前ちゃ当たり前なんですが、結果としてOBS Studioを起動して収録/配信をしているPC上でしかPTZ操作もできないことになります。私の場合モデレーターもやりながら収録や配信も自前のPCでやるので、PTZ操作も自分がやることになります。「観察担当がこっそり操作」ができないのです。モデレーターは忙しいのでカメラは忘れがち。観察担当からチャットで「手元が映ってません!」と連絡が来て慌てて追従操作をしたりということがよくあります。それなら観察担当者が直接カメラを操作できたらいいのにと思うことがよくあります。

では別売りのリモコンを使えばイイジャナイ!と思うわけですが、これまたあまりイケてません。これは本質的にはPCにワイヤレスキーボードとして認識される仕組みで、リモコン上のボタンはPCからはキー入力として送られます。アプリケーションが手前にあればそれを受け取ってカメラ制御に渡すわけですが、例えばOBS Studioとか記録のためのWordとかを操作中だとそちらに無用なキー入力イベントが混入してきてしまいます。結果としてメモ用PCとOBS Studioで録画配信をするPCを別にわける必要などが出てきてしまいます。

またUSBという規格の弱点として、

  • 数m以上の長いケーブルを使う
  • 複数台つなぐ

などすると不安定になるのも不安要因です。インタビュー視点、顔アップ、手元、などいくつもカメラをつなぎ、更にRODE Wirelessシリーズのようなマイクも使ったりするとPCのUSBポートは渋滞して不安定になります。画角によってはPCから離れた場所に設置したくてケーブル長が問題になることも。そういう時に台数が増えても安定して収録できるATEM Miniなどの外部スイッチャーを使いたいのですがHDMI出力がないカメラはつながりません。HDMIがついたPTZカメラとなると途端に数十万円コースになるのです。OBSBot社からWebカメラ(UVC入力)をHDMI出力に変換するアダプタなども出ていますが、これもPTZ操作はできるけどフォーカスが調整できないとかゼツミョーに実用性が今一歩でした。

そこでOBSBot Tail Airですよ!

前置きが長くなりましたがようやくOBSBot Tail Airの話です。特徴として、

  • (micro)HDMI出力
  • Wi-Fiや別売りアダプタを組み合わせて有線LAN経由で映像送信
    • 単体でYoutubeライブなどにRTSP送信
    • NDI HX3形式での送信(別売りのライセンスキーが必要)
  • 従来通りWebカメラ(UVC)接続
  • BluetoothリモコンやスマホアプリでPCを介さずにPTZ制御
  • 4K/30pまたは1080/60p
  • f1.8の明るいレンズ
  • ToFセンサーで正確な測距→オートフォーカス精度
  • 3.5mm入力で外部マイク対応
  • バッテリー内蔵で一定時間ケーブルレスでも動作
  • microSDカードに直接録画

といった点が挙げられます。太字にしたところがユニークで強力なポイント。「HDMIで映像を出しつつ、全く独立でリモコンやアプリで制御ができる」という点だけでUT用途的にはもはや神デバイスです。アプリはWi-Fi経由なので現場でネットワーク環境が必要になりますが、別売りのリモコンならBluetoothで直接カメラを制御するので持ち込んだ現場でなんの前提条件もなく使用できます。なんなら壁越しで別室からも制御できるはずです。逆にアプリが使える環境だと、自慢のAIトラッキングで顔や特定のオブジェクトを自動追尾させるなど便利な機能も活用できます。

またHDMIのかわりにネットワーク映像伝送ができるのも更なる伝送距離が賄えたり、部屋をまたいだ伝送がしやすくなったりするポテンシャルがあります。社内ネットワークなどに接続できるのであれば別フロアの会議室を観察部屋にすることも簡単にできてしまうでしょう。

ちなみにこれまでのデジカメやGoProのようなアクションカメラでもWi-Fi経由でYoutubeやFacebookなどにライブ配信できるものはありました。しかしUTではそうした公開配信向けのサービスを利用することは(仮に限定配信設定を使うとしても)抵抗があり結局役に立ってきませんでした。RTSPを使ったプライベート配信も専用サーバーが必要だったりかなりスキルを要します。それを置き換えるのがNDI HX3対応になります。数十万円級のPTZカメラでしか実現してなかった部分です。LAN内でとても簡単に映像伝送を行う規格です。OBS Studioでもプラグインをインストールすれば簡単にソースとして受けることができます(後述)。別途利用ライセンスを購入する必要がありますが、総額としては全然安上がりです。

Wi-Fiだけでなく有線LANが使えるのも安心感が高いです。専用アダプタはPoE対応なのでアダプタ側に電源ラインをつないでおけば、アダプタからカメラまではケーブル1本で済み、見えるところの配線がスッキリ設置できます。

そんな特長は自分の業務案件にピッタリすぎてクラウドファンディングが開始した瞬間に秒で予約してしまいました。

■届いた!

2023年11月末、ついにクラウドファンディング参加者向けの先行発送分が到着しました。本体以外にもいくつか必要そうなアクセサリがセットになったパッケージ「パワーアップコンボ」を買いました。写真は左から

  • PoE対応ネットワークアダプタ(\14,580)
  • 本体(\68,909)
  • リモコン(\11,800)

です。他に、NDIライセンス(\14,580)、microHDMIケーブル(\2,250)、NDフィルターセット(\8,800)もついてきています。カッコ内はこれから単品購入する場合の公式サイト価格です。コンボにしても総額でそこまで割引きはない感じですね。送料のロスはあるかもですが必要なものを順次買っていくでもいいかも知れません。自分が注文したクラウンドファウンディングの先行予約価格は$649でした。\150/$とすると\97,350。送料が割と高かった気がしますが、まぁ早期ゲットできたのでアリです。

これからUT向けに買おうと思う人は、まず本体とリモコンだけでもいいかも知れません。ネットワーク伝送したい場合はNDIライセンス、Wi-Fiが不安な場合に有線LANアダプタという感じでしょうか。ケーブルやUSB-C充電器は国内で手に入る汎用品で充分かと(充電仕様は5V/2AでPDすら不要ぽい)。NDフィルタも画面を撮影するには便利かも知れません(後述)。

■ファーストインプレッション

ちょうど使えそうな案件に仕掛かり中だったので、速攻で開封してテストしてみました。

アプリがちょっとおかしい

iPhoneアプリをインストールしてみるとログインを要求されます。これがちょっとおかしい。登録はeメールアドレスでするのに、なぜかログインは電話番号+SMS認証フォームが表示されます。登録時に電話番号入れてないし、試しにログイン画面に電話番号入れて見ても形式があわないとエラーになります。つまり、iPhoneでは初回なのでメールアドレスで登録し、そのままログインできて使えてるんですが、別のiPadにもアプリを入れてみるもログインしようがない。新規登録画面にいってメールアドレスを入れて見ると「登録済みです」といわれ進めません。詰みです。このままiPhone側でうっかりログインまで外れてしまったら再接続できない状態。これは早急に対応してほしいものです。

PCアプリからはログインを求められないので普通にネットワーク経由でも使えます。

とりあえず映った、画質良好

そんなトラブルがありつつもとりあえずiPhoneアプリはつながり、HDMI出力とOBS StudioへのNDI伝送は成功しました。映りも上々で、1/1.8インチセンサー成りの室内でもそこそこの明るさで撮れていると思います。まずはこれで安定して長時間動作してくれれば今回の案件には投入できるかなというところです。本体は結構熱くなるしバッテリーも結構な速さで減ります。公式では154分となっていますが当然撮影条件によるでしょう。

天井から逆さ吊りする場合、映像を180度回転する必要があります。最初アプリでどこを探しても左右反転しかなくて焦りました。もう逆さまにしないで天井から吊る治具の構想まで練ったくらい。しかしFAQを読んでたら「逆さまにすればジャイロが検知して自動的に回転するよ」って書いてましたw。なるほどその発想はなかった。一安心。

出力/録画は排他条件が厳しめ

アプリで設定画面をいじってみてわかったんですが、UVC(USB Webカメラモード)、NDI、HDMIの出力や録画は排他のようです。標準でHDMI出力されている状態で、UVCモードをオンにしようとすると「NDI/録画/ライブストリーミング/HDMI/RTSPは利用できなくなります。」という確認ダイアログが出ます。つまりUSB出力以外全部無効になるって感じですね。またNDIモードをオンにしようとすると「UVC/ライブストリーミング/HDMI/RTSPは利用できなくなります。」とのことなので、録画以外は止まるということっぽいです。「同室内のモニタにHDMIで映しつつ、NDIで遠隔伝送」ということはできないっぽいので惜しいところです。同室内もNDIモニタリングするしかなさそうですね(NDIは同一ネットワーク内の複数のクライアントで同時視聴は可能)。またHDMI以外では同時録画できないとすると、「万一ネットワーク配信が途切れた場合のためにローカルでバックアップ録画」みたいなこともできないってことですね。

主な使い方はHDMI出力しつつバックアップ録画、に落ち着くかも知れません。またはNDIを使う時は安定重視で有線化して、可能ならばNDI専用のネットワークを構築するとかかなぁ。NDIの安定性については追々検証していきたいと思います。

アプリでできる便利機能

OBSBotは元々画像認識による自動追尾やズームが売りになっていて、Tail Airではそれがさらに発展しているようです。表情カメラとして使う時に顔認識追尾はありがたいんですが、正直精度がイマイチで誤爆して明後日の方向を映してしまうことがあるので実務ではオフにしていました。こいつはどうでしょうね。

新機能としては、AIがいくつかの画角を提案してくれてタッチで選ぶ疑似マルチビューみたいな機能がつきました(AIディレクターグリッド機能)。全体や顔アップ(複数人映ってる時はそれぞれだったり全員が入る画角だったり)を切り出してくれます。ズームしてもわりかし綺麗。

顔以外のものを範囲選択して追尾するオブジェクトトラッキングも多分初搭載。DJIとかInsta360などのジンバル製品やドローンでよくあるアレです。ユーザーが手にしているスマホとかも追ってくれるので重宝しそうです。試した範囲では精度もまずまずですが、やはりスマホが頭に隠れて見失ったりすると的外れな画角に行ってしまって戻ってこない、みたいなことはあり、60分とか90分の実査を無操作で乗り切れるかというとまだ足りないかも知れません。マニュアルで追い続けるよりは遙かに楽なのは間違いありません。

スマートリモートコントローラー

アプリでできる全てがリモコンからできるわけではありませんが、ネットワーク接続不要で普通に”リモコン”なのはとても便利です。Bluetoothなので壁1枚くらい挟んで観察室からでも普通に操作できちゃうはずです。

できることはパン、チルト、ズームの他に、3箇所の定点の保存と呼び出し、シャッター操作、本体の電源ON/OFF、追尾モードの切り替えなど。面白いのは、レーザーポインターを内蔵していて、それで指した点をズームアップさせる機能です。ミサイルのレーザー誘導みたいです。ただまぁこれもちょっと実用性には今一歩という感じ。取説に情報が少なく動作ルールがよくわかりませんが、自在に誘導できるというところまでは行ってません。たぶんジンバルには連動してなくて、今映ってる画角内でのデジタルズームでアップにできるだけっぽいです。もちろん画角に入ってないところにレーザーを当てても検出のしようがないですが、画面の端っこなんかに見えてる時は首振りまでして追ってくれるといいなと思います。

Bluetoothでレーザーポインターまで搭載しているので、電源は乾電池ではなくUSB-C充電式になります。うっかり充電切らしてしまうと使えないので注意が必要です。

NDフィルターが意外と有用かも

「パワーアップコンボ」セットに含まれるNDフィルターセット(ND4/8/16/32の4段階)は屋外撮影するでもなければ出番はないかなと思っていました。

が、実際は煌々と光るディスプレイを映す場合には結構使えそう。少しカメラの専門的な説明になりますが、OBSBot Tail AirのカメラはスマホやWebカメラと同じで物理的な絞り機構を備えていません。入ってくる光を物理的に減らすことができないのです。なので明るすぎる画面を撮ると白く光ってしまって画面内の文字を読み取ることができなくなります。通常はこれを抑えるにはシャッタースピードを上げることで対処します。本機はアプリからマニュアルモードにすると自分でシャッタースピードを調整できますし、オートの時も基本的に同じ制御を勝手にしてくれます。ISOを一番下げ(100)シャッタースピードを上げることで画面は暗くなります。しかしその弊害としてフリッカーが割と激しく出てしまうようです。フリッカー低減設定もあるんですが、50Hzにしても60Hzにしてもある程度シャッタースピードが速いとどうしてもチラチラしてしまう傾向がありました。そこでこのNDフィルターをレンズに被せて物理的な光量を減らしてやることで、シャッタースピードを適切に保ったままいい感じに液晶画面を撮ることができるようになります。実際に試してみると一番薄いND4ではっきり効果が感じられました(部屋の明るさなど環境にも拠るでしょうけど)。

ちなみにOBSBot Tail Airのレンズはフィルターネジは切られておらず市販のNDフィルターをとりつけることはできません。純正フィルターはマグネットでカチャっと取り付ける方式です。基本はこれを買え、ってことですね。どうしても安く済ませたい場合は自分で適正なサイズにカットしてテープで貼るなどするしかないでしょう。

室内で人物を撮る位なら無しでも全然問題ないと思いますが、液晶画面など強く光るものを綺麗に映したい場合はこのNDフィルターセットも一緒に買っておくといいと思います。

■[TIPS] OBS StudioにNDI入力する

OBS StudioでNDIストリームを受け取れるようにする手順をまとめてみます。

ちなみにOBSBotとOBS Studioは綴り似てますがなんの関係もありません。前者は「オブスボット」で、後者は「オービーエススタジオ」ですし。

前提として、

  • OBSBotのセットアップが済んでおりWi-Fiまたは有線LAN(Ethernet)でPCと同じネットワークにつながっている
  • OBS Studioの基本操作は理解している

ものとして説明します。

プラグイン「obs-ndi」を導入する。

こちらのGitHubから自分のOSに合ったインストーラーをダウンロードしてインストールします。先日出たOBS Studio 30系も4.13.0で対応してくれてるっぽいですね。

インストール後にOBSを起動すると「更にNDI5 Runtimeをインストールせよ」というダイアログが出て、もう一度同じダウンロードページに遷移させられ、自動でNDI5 Runtimeが落ちてきます(インストール済みなら出ないかも)。念のためOBS Studioを終了して、インストールします。

2つともインストールできたら改めてOBS Studioを起動。ソース一覧に「NDI Source」が増えていれば成功です。

NDI Sourceソースを1つ追加しプロパティをみるとこんな感じになってると思います。

Source nameプルダウンメニューを開くと、同じネットワーク内にいるNDIストリームの一覧が表示され、その中にTAIL AIRナンチャラがいるはずです。ここで見付からない場合は、PCとOBSBot Tail Airが同一ネットワークにつながっているか、端末間の直接通信が許可されているかを確認します。会社のゲストWi-Fiや公衆Wi-Fiだとプライバシー保護のため端末間の通信がブロックされている場合もあります。

基本的には設定はそれだけです。問題がなければ。ネットワーク帯域が細くて安定しないとか映像と音声がズレるなどあれば、BandwitchやAudio/Video Syncを変更してみたり、Allow hardware acceralationをオンにしてみたりしてもいいかも知れません。

ちなみにこのプロパティ画面をスクロールするとこんな項目もあり、ここからOBSBotのPTZ制御をすることもできます。

「Pan Tilt Zoom」をオンにして、下のスライダーを動かせばOK。でもいちいちこの画面開いてスクロールして、っていうのは面倒で現実的ではないかなと思います。

■[TIPS] 天井から逆さ吊りする

今回の現場では頭上にネットワークケーブルなどが通るケーブルラックがあるので、そこからどうにかぶら下げてみようと思います。

以前購入したこのクランプを逆さまにして固定します。

すると下向きに三脚ネジが突き出る形になります。ここの直接OBSBot Tail Airを逆さまにつけても良いですが、今回はもう少し低い位置にセットしたいので、さらにこういうポールを使います。

片方が三脚ネジ、もう片方が三脚ネジ穴になっていて伸縮して長さを調整できます。自分の場合は別に買って所持している一脚があって雲台と足を取り外せば同じような状態になるのでそれを使い回します。

理論上はこれで好きな高さにカメラを吊り下げ可能でしょう。内蔵ジャイロで向きを検出してくれるので、映像は自動的に180度回転して正しい向きになってくれます。

あとはHDMIケーブルなりネットワークケーブル、電源ケーブルを接続します。ケーブルの重さがコネクタにかからないよう、いちどケーブルを上に持ち上げてポールに固定するなどし、可能ならそのままケーブルラックを通して見栄えの良い位置から床に落とすなどしたいところです。

またHDMIケーブルの場合、microHDMIケーブルで長いものを買うと汎用性が低くコスト高になるので、こういう変換コネクターを使ってHDMI-HDMI(両側Dコネクタ)のケーブルを使う方が良いんじゃないかと思います。

エレコム micro HDMI - HDMI 変換ケーブル 10cm ブラック TB-HDAD2BK

エレコム micro HDMI – HDMI 変換ケーブル 10cm ブラック TB-HDAD2BK

1,800円(11/20 12:51時点)
Amazonの情報を掲載しています

その場合もmicroHDMI側とHDMI側が一体化した変換コネクタだと荷重がかかりやすいので、上の商品のように短いケーブルを介するタイプがオススメです。

(設置現場で撮影許可がとれたら写真追加します)

ケーブルラックがない場合は、ポールを床から立てるとか、マジックミラーやガラス窓がある場合は吸盤マウントを使うのも良いでしょう。お高いものなので万一にも落下しないようダブル吸盤のこちらなどをオススメします。

なにかポールや棚がある場合はこういうクランプでしょうか。

まぁ三脚穴で固定できるので夢は広がりまくりです。ちなみにOBSBot Tail Airの重量は344.5gとなっています。

■まとめ

HDMI出力があり、PCを介さずにPTZ操作ができ、かつ10万未満(本体+リモコン)と比較的安いPTZカメラOBSBot Tail Airを早期入手できました。今回は使いませんがNDIでIP伝送してOBS Studioに直接映像も送れたりと汎用性抜群の神カメラだと思います。

UT実務でも見学者に気軽にリモコンを渡して「好きなところを見てください」とできれば喜んでもらえるし、モデレーターの負担も1つ減ってとても有用でしょう。

惜しいのは光学ズームではなくデジタルズームなので、4Kといってもズームすると画質が落ちてしまう点。でもまぁ出力解像度がフルHDだったらそこまで問題はないかも知れません。

できればもう1台欲しいくらいです。まとまった収入があったりセールの時、業務上必要が生じた時に買えたら買ってしまいそう。

Premiere Proでトラックマットキーを使って効率よく一部ボカシをかける

最近は個人情報保護の観点でUTの録画も参加者の顔にボカシを入れるケースが増えてきています。私も録画ファイル中の顔にボカシをかけて納品することがあります。画面はプロダクトと手元を映すカメラと参加者の顔を映すカメラを合成して左右に並べることが多いです。当然、プロダクト側はボカすわけには行かないので、通常は顔カメラ部分を矩形などで範囲指定してブラー(ぼかし)フィルターをかけます。

が、主に自動車系の調査などで目線移動は見返せるようにしたいというニーズがあります。運転中にナビを操作するようなタスクで、何秒くらい脇見をしたか、みたいな判定をしたりする為です。その時は、以下の図で水色の部分にだけボカしをかけます。目線の部分だけボカシを抜いている感じです。

これが固定であればなんの問題もないのですが、実際には参加者ごとに座高が異なっていたり、セッション中にも姿勢が変化するなどして、この窓抜きの位置は頻繁に調整が必要になります。これが地味に手間がかかるのです。Premiere Proでいうと、元映像トラックとは別に調整レイヤーを作り、そこに「ブラー」エフェクトをかけ、マスクで窓を作り、反転にして、、などとしていましたが、これだと水色の外枠を移動させると、中の窓も連動して動いてしまうので、再度調整が必要になったりしがち。

なにかもっと楽な方法がないかとFacebookのPremiere Proコミュニティに質問したところ、「トラックマットキー」エフェクトを使う方法をご指南いただきました。そう頻繁にはやらないので忘れてしまいがちで、毎回昔のプロジェクトを開いて模倣するなどしているので、あらためて手順をメモしておきたいと思います。

  • 「ビデオ1」トラックに元映像ソースを配置
  • 「ビデオ2」トラックに調整レイヤーを置き、「ブラー」エフェクトを挿入
  • 「ビデオ3」トラックにエッセンシャルグラフィックスの「長方形」を挿入し、水色部分(ぼかしたい範囲)を囲う
  • 「ビデオ2」の「ブラー」でマスクを作成し、窓の位置を指定し「反転」し、適切な強度のぼかしをかける
  • 「ビデオ2」に「トラックマットキー」エフェクトを挿入し、「マット」に「ビデオ3」を指定。

これで、

  • 窓を動かしたい時は「ブラー」のマスク範囲をドラッグ
  • 水色全体を動かしたい時は「長方形」オブジェクトをドラッグ

で独立して移動することができます。長方形で全体を動かしても目線窓の位置は固定されます。またソース映像と完全に独立した2つのレイヤーをセットでコピペすれば他のセッションのタイムラインにも一発で適用できますし、タイムライン上で時系列で変化させるのも簡単です。

めちゃくちゃニッチですが完全に自分用メモとし。