安くなった「グランツーリスモsports」で疑似走行映像を作れるか?

Pocket

MicrosoftのカーシミュレーターAirSimを使ってカーナビ等のユーザテストで使う走行映像を作れるか?という検証記事を出したまさにその日、PlayStation4のリアルカーレースゲーム「グランツーリスモsports」がなんと1,990円に値下げされていました。

【PS4】グランツーリスモSPORT PlayStation Hits

【PS4】グランツーリスモSPORT PlayStation Hits

1,809円(11/21 14:15時点)
Amazonの情報を掲載しています

PlayStation 4 ジェット・ブラック 500GB (CUH-2200AB01)

PlayStation 4 ジェット・ブラック 500GB (CUH-2200AB01)

28,800円(11/21 17:03時点)
Amazonの情報を掲載しています

PSVR対応が気になりつつも他のVRレースゲームで寝込むほどのVR酔いを体験した私はいまいち手が出せずにいましたが、この値段ならばと早速買ってきて、走行動画生成に使えるか検証してみました。現在のレースゲームは16年前に(個人的に)策定した要求仕様を満たせるのか!?

当時の記事はステコンをつないで被験者自身にリアルタイムに操縦してもらう前提。今直近ではとりあえず動画としてそれらしいものが撮れればいいかなくらいの違いはありますが、とりあえず以前の項目に照らしてチェックしてみます。

・BGMをオフにできる?

可能。

・画面上のステータス表示をオフにできる?

可能。さらにスゴイのはリプレイモード時点でUI表示ON/OFFや視点制御が変更できる点。つまりまずは走りやすい第三者視点モードやUI表示ありで走行し、いい記録が撮れたと思ったらリプレイモードに行き、UI表示OFF、運転視点に切り替えて動画を流す、ということができちゃいます。

・GAME OVERにならない?

タイムアタックモードにすればOK。他の車も走らせたい場合もカスタムレースで周回数を多めにしておけば大丈夫でしょう。

・ライバル車両がいない状態で走れる?

タイムアタックモードで可能。

・ステアリング&ペダル・コントローラーに対応?

対応。

・景観が市街地など一般道?

日本の首都高速を模したコースがあります。レベル7で開放なので1,2時間ほど頑張ってプレイする必要があります(笑)。コースがループなので、うまくつなげば自然なループ動画が撮りやすそう。

残念ながら日本の一般道を模したコースはありません

・ドライバー・ビューで表示できる?

もちろん可能。運転席が映り込むもの、ボンネットがけ見えるもの、何も見えないものなどがあります。

 

ということで高速道に限っていえばかなり理想的なシミュレーターとなりそうでs。AirSIMと違って他の車のブレーキランプなどもきっちり点灯しますし、日本の公道で見かける車種も多く収録されています。さらに晴天、雨天や昼/夜間も選択可能。

ただしAI車達はあくまでレースとして走行するので、無闇やたらと車線変更をしたりします(首都高なので反対車線はなく基本二車線道路)。またこちらはリアルに80km/hくらいで走行すると後ろからビュンビュン抜いてく感じになります。AIカーの上限速度も設定できれば文句なしなんですが。動画としては、こちらもそれなりに高速で走って動画にした後、遅回しで再生するという手もありそうですがまだ試していません。その場合、こちらも接触せずに綺麗なライン取りで走れる腕前が必要になります。ステリングコントローラーが欲しくなりますね…

あとヨサゲなのはリプレイモードで好きな車両のカメラを選択できる点。上手いAIカーの視点ならばそつなく走ってくれる動画が簡単に得られます。ただしトップ車両だと他の車両との絡みがほとんど映りませんw。

とまぁ完璧ではないですが、「高速道路を走っていて、たまに横から車が来て抜いてったり割り込んできたりする(ブレーキランプも点灯)」みたいな動画くらいなら割となんとかなりそうです。しかもかなりリアル。ナンバープレートがついてない(車名プレート)くらいかな。

あとは二人プレイで上手く連携すればもう少し割り込みなどを意図したタイミングで発生させられるかもは知れません。

ゲーム映像を目的外に利用することは権利侵害になる恐れがあります。配布や納品などの際には利用許諾などを確認願います。

 

車載機器UTのための走行映像をMicrosoftのAirSimで作れるか?

Pocket

室内でカーナビなどのユーザーテストをする際、前方に走行映像を流したいことがあります。走行中の操作タスクをする際、少しでも被験者の意識を前方に向けて、あくまでサブタスクとしてナビ操作をさせたいわけです。その為、車載カメラで想定シチュエーションにあわせた映像を撮りにロケに行ったりもします。例えば「狭い道路でいつ脇道から人や自転車が飛び出してくるかわからない」映像とか「高速道路を巡行していて前方に渋滞が見えてくる」映像とかです。これがなかなか大変。
理想を言えばきちんとしたシミュレーターを使って、タスクの進行にあわせて飛び出しや渋滞が発生した映像を呈示できるのが望ましいですが、多くの案件ではそこまでの準備は適わないことが多いです。時にはカーレースゲームを使ったりしたこともあり、使いやすい要求仕様をまとめてみたこともあります。なんとまぁPlayStation2とかの時代の記事…。

そして昨今ではコンピューターパワーも飛躍的に高まり、また自動運転研究のためのシミュレーター環境などが無償または安価に利用可能になってきました。そこで今回はMicrosoftがクルマやドローンの自動運転研究のために無償公開したAirSimというオープンソースのシミュレーターを試してみました(日本では同名の格安SIMサービスがあって非常にググラビリティが低いです…)。

結論からいうと今一歩でした…(終わり)

以下、興味のある方向け。

■Microsoft AirSimとは?

Microsoftが自動車またはドローンの自動運転研究の為のシミュレーションを仮想世界で好きなだけ行うために開発、公開しているプラットフォームです。ゲームエンジンのUnreal Engineをベースにしているようですが、最近Unityでも使えるようになったようです。ただWindowsで既成のマップワールドを利用する分にはUnity環境込みのバイナリパッケージが公開されているので、.ダウンロード&解凍してexeファイルを実行するだけで利用可能です。標準ではキーボードで簡単な操作ができたり、Pythonスクリプトで制御したりできます。昼夜や天候なども簡単に変えられます。

■やりたかったこと

私もUnreal Engineの知識ゼロの状態で、とりあえずこの吊しのマップデータを使って、

  • フォトリアルな走行風景
  • 前走車の急停止や側方からの割り込みなどあらかじめ既定したタイミングでイベントを発生させた映像を動画ファイルに保存できる
  • またはキーボード操作などで任意のタイミングでそれらのイベントを発生させられる

などができたらいいなという期待がありました。

■残念だったところ

Unreal Engineに精通しており自分でマップやオブジェクトを作成できればまた違うのでしょうけど、とりあえず吊しのデータを使い、標準のAPIドキュメントを眺めた限りでは以下の点で要求を満たすことができませんでした。

・市街地、道路のマップがアメリカで、走行車線も右側通行

グローバルな案件ではアリかもですが、私の請ける範囲ではちょっと使いにくい。特に市街地マップは信号や標識も違うし、モブのクルマが反対車線を走ってるのが厳しいです。郊外で高速道路想定であればまだ許容範囲かも知れません。

・カメラアングルの自由度が低い

FOV(ドライバー目線)はありますがハンドルを含む運転席のパーツを消せないので、UTで用意する治具とバッテイングする場合があります。

また第三者視点で選べるプリセットはやや上空から見下ろすアングルのみで、真後ろ視点が選べません。自動で真後ろ視点で追尾できると便利なんですが。

ただしマニュアルカメラモードにすることで好きなアングルに変更できます。ただし一度マニュアルモードにするとキーボード制御はそれ専用になってしまうので、別途車両を操作するコントローラーが必要です。とりあえずXBox Oneコントローラーは使えました(有線)。ステアリングコントローラーもLogicoolのG902などが使えるぽいです。

つまり、これらの外部コントローラーで操作して、その背後視点のカメラ(または運転席)から見た映像を得ることはできるので、あとは画面録画ソフトを使って録画すれば動画ファイルは得られることになります。

しかし!

・クルマオブジェクトが無人でブレーキランプが点灯しない

標準ライブラリのクルマが無人なんですw。最初から自動運転制御前提ですかねw。ちょっとこれもリアリティに欠けます。ダミーでいいので載せておいて欲しかった。

またさらに痛い点として、ブレーキ制御をしてもランプが光りません。例えば前走車が急ブレーキを踏んだ!というプレッシャーを与えることができません。

・期待したほどフォトリアルな映像品質ではなかった…

各記事の写真をみた限りでは結構綺麗そうだったんですが、少なくともウチのGeForce GTX 1080では「スゲー!」ってほどの感じではないです。画質もそうですが例えばぶつかった時にびよーんと車体が撥ねたりする時の挙動がすごくゲームちっくです。まぁ指定ルートを事故らずに走行している分にはいいのかも知れません。できれば車両のモデリングデータだけ実在の車種に近いもの、ナンバープレートがついていて、ブレーキランプがつくものに差し替えられればなぁと思います。マップも同様。ここら辺、UEやUnityを勉強するとか、有料であれモデリングデータを買ってきたりすればどうにかなるのかも知れません。

動画サンプルはこちら。

■使用方法メモ

・とりあえずAirSimを起動してみる

WindowsならUnreal Engine込みでビルドされたバイナリをダウンロードするだけ。GitHubのReleaseページでWindowsの最新版(執筆時点で1.2.2)の「Assets」リンクを展開すればマップ毎のビルド一覧が出てきます。サイズの大きなCityEnviron.zipだけは001と002に分かれています。同じフォルダに置いて7-zipで解凍すれば勝手に両方つなげて展開してくれます。でてきたフォルダを開くとUnreal Engineのアイコンがついた.exeファイルが1つあるのでダブルクリックすれば起動します。

「Choose Vehicle」というダイアログが出るので、クルマなら「はい」、ドローンなら「いいえ」を選びます。

F1で操作ガイド、F10で気象コントローラーです。標準ではカーソルキーで車両が走り、BSで初期状態に戻ります。「F」「B」「\」「/」でカメラ視点が変わります。「M」がマニュアルでこの状態だとカーソル上下やPage Up/Downなどで好きな視点にできますが、逆にカーソルで運転できなくなります。他のカメラモードにするとカメラ視点はリセットされてしまい、マニュアルカメラ視点で運転するには別途コントローラーが必要です。

・コントローラーを使う

Xbox OneコントローラーをUSBで接続しておけばとりあえずは使えます。RTがアクセル、LTがブレーキ、左スティックがステアリングで、ともにアナログ制御です。画面左上のリアルタイムでパラメーターが表示されます。

ただしこの状態だとバックができません。そこで初期設定を少しいじりました。

・初期設定を変更する

初期設定ファイルはユーザの「ドキュメント」フォルダに「AirSim」フォルダが作成されてsettings.jsonというテキストファイルができています。これをテキストエディタで開くと、

などとなっており、これを書き換えて.exeを再起動すると反映されます。ちなみに.exeの終了はメニューがないので、私はAlt+F4でやっています。

とりあえずこんな感じに変更。記法はJsonなのでカンマや{}の位置に注意。

"SimMode": "Car", があると、起動の度にカメラかドローンかを聞かれなくなります。 "Vehicles": {} で1台目のクルマを指定し、 "RemoteControlID": 0 でWindowsが認識している最初のコントローラーを使うことを明示します。なぜかこれを明示すると、左スティックの下でバックができるようになりました。上とAボタンでもアクセル全開(1)が入るようになります。ただし注意点として.exeファイルを起動する時点ではコントローラーのケーブルを抜いておかないと起動後におかしな挙動をするようです。再起動の度に毎回ケーブルを抜き差しするのがちと面倒になります。初期状態ならそうはならないので、バックが使えることとトレードオフのようです。
"X": -4, "Y": 0, "Z": -2, "Yaw": 0, "Roll":0, "Pitch":0, は初期出現位置と向きです。Yawをかえると向きがかわります。RollやPitchは平らな地面の上に置くクルマではいじる必要はないでしょう(ドローン向け)。Vehiclesの下に複数のクルマ設定を書けば出現する数を増やすことができます(同じRC設定をしてしまうと両方が動きます)。

これでとりあえずマニュアルカメラ視点をとりつつコントローラーで快適に操作できると思います。

・Pythonから制御する

さて目玉であるプログラム制御についても軽く触れておきます。Python詳しくないのですが一応動くところまで。

まずPython環境がない場合はAirSim公式推奨のAnacondaというツールを使ってインストールします。配布サイトからWindowsを選び、Python 3.7の64bit版インストーラを落として実行します。またPythonスクリプト自体は好きなテキストエディタで書き、コマンドプロンプトからpython3コマンドで実行すればいいのですが、デバッグ効率などを考えるとMicrosoft Visual Studio Code(以下VS Code)を使用するのがお勧めです。あわせてインストールしておきます。UI日本語化の方法は適当にググってください。

Anacondaをセットアップすると、スタートメニューから関連ツールが選べるようになります。まず「Anaconda Prompt (Anaconda3)」を開き、必要な追加ライブラリをインストールします(最初の1回のみ)。

次に「Anaconda Navigator(Anaconda 3)」を起動します。ここからVS Codeを「LAUNCH」します。(直接VS Codeを起動するとコマンドパスの関係で動かない場合がある)

開いたVS Codeで新規ドキュメントを開き、以下のコードをコピペします。

8行目まではおまじない。10行目でステアリングを軽く右に切ります(負の数が左、最大は1)。11行目は以下を3回繰り返すという意味です。Pythonではインデントの範囲がブロックとみなされるので、それ以下が繰り返しの範疇ということになります(明示的に閉じ括弧がありません)。11,12行目でアクセルを全開(1)にして14行目で1秒待ち。15-17行目でアクセルを戻してブレーキをベタ踏み(1)。18行目でまた1秒待ち。つまり、微妙に右に曲がりつつ、チョイ前進を3回繰り返す感じです。AirSimはカーシミュレーターなので、オブジェクトとして位置を指定するのは初期設定ファイル側で最初のみ。あとはクルマの制御機構であるステアリング、アクセル、ブレーキを操作するというところがミソですね。

さてこのコードを拡張子を.pyにして適当な場所に保存すると、ウインドウがPythonモードになります。コードが着色され、右下のステータスバーが「プレーンテキスト」から「Python」に変わっていることを確認してください。

この状態でおもむろにF5キーを押します。すると下に「ターミナル」が出現し文字がパラパラと流れ、AirSim側でクルマが動けば成功です。VS Code側にはこんなツールバーが出現します。「□」で実行を停止。再度F5をすれば最初から実行されます。

またAirSim側でバックスペースを押せば初期状態に戻るので、コードをちょいいじっては実行するという作業をする時はこのVS Codeとの組み合わせが楽だと思います。また例えば「car_control.」まで打てばthrottle、brakes、steeringなどが推測候補として表示されるのでコーディング効率も良いです。

ただそれを見る限りでは、このAPIでは基本的なクルマの挙動しか制御できず、例えばブレーキランプやウインカーを点灯するとかそういうレベルまでは対応してないぽいです。そこは自前でそういうモデルデータを用意してAPIを拡張してやる必要があるということでしょう。その辺り、業務ニーズはあるのですが、私も3Dモデリング周りは全くの素人なので一朝一夕ではできそうにありません。願わくはこれを見たどなたかが刺激を受けて取り組んでくれたり、一緒にやろうと言ってくれればなと思います(笑)。

というところまでで今回の自由研究は一旦切り。覚え書きまで。

ユーザテスト/インタビューのためのApple Watch Series5

Pocket

Apple Watch Series5が出ましたね。ついに常時点灯に対応しました。もう時計を覗き見るジェスチャーをしなくても表示が見られるようになったのです!

ユーザテストのモデレーターやインタビューのインタビュワーをする時、あまり時計をチラ見して相手に時間経過を意識させたくありません。そう考えると明示的に時計を見るジェスチャーをしないと文字盤が見られない今までのApple Watchはやや使いづらいツールでした。一方で、各種メッセンジャーでメッセージを受信できるようにしておけば、観察室からの追加質問などの伝達事項を簡単にチェックできたりして重宝もします。

今回私もSeries 3から5に買い換えたので、モデレーター/インタビュワー目線でどう活用できそうかチェックしてみたいと思います。

■Series 5の常時点灯(Always On)とは?

Apple Watch Series 5の常時点灯は単純に画面が消灯しなくなったというものではありません。それをするとバッテリーの消費がエラいことになるからです。ではどういうことかというと、画面が暗くなり、更新頻度が1分おきになる省電力モードになる、という形で実現しているのです。もちろん今までの時計を覗くジェスチャーをしたり画面をタッチすることで明るさが復帰し、更新頻度もフルサイクルになります。そしてまたしばらくすると省電力モードになる、という繰り返しです。

例えば時計に秒針があったとしても画面を書き換えが1分おきでは意味がないので、省電力モードでは秒針が消えるなど、画面のデザインも簡略化されます。

■セッションの経過時間/残時間を把握したい

モデレーターが気になるのはやはり時間管理です。60分だったり90分だったりするセッション時間のうち、現在どれだけ経過したか、あと何分使えるか、ということは常に意識するべき点です。セッション開始が00分とか30分など切りの良い時に始まればよいのですが、例えば60分+休憩10分で進めていくと9時スタートの次は10時10分スタート、11時20分スタート、といったようにズレていきます。さらに相手が遅刻してきたりもしてカオスなことに。壁の時計で時刻が見えるだけだと直観的な時間管理は難しいのです(時計算が得意な人は平気なのかも知れませんが…)。

というわけで、ここでは(カウントダウン)タイマーに着目してみたいと思います。Apple Watchには当然タイマーアプリも搭載されているので、それを使えばいいかと思いましたが、なんと個別のアプリ画面は省電力モードに落ちるとぼかしがかかりその上に大きく時計だけが表示された状態になってしまうことが判明。つまるところ、ホーム画面というかウォッチフェイスの状態でタイマーの進行状況を見るしか無いということになります。秒レベルの精度は必要ないので省電力モードの1分更新でもOKです。

そんな観点で標準搭載のフェイスデザインとタイマーのコンプリケーション(フェイスに配置できる小さな情報窓)の組み合わせをあれこれ試して、一番ヨサゲなのは「インフォグラフモジュラー」フェイスで中コンプリケーションにタイマーを割り当てた状態である、という結論に至りました(写真)。

タイマーの残時間とだんだん縮んでいくバーグラフを表示してくれます(目の調整力が落ちてきてるので、あまり小さいコンプリケーションだと文字が読めない…)。「1時間」というのが設定した時間、つまりセッションの長さです。その下に「残り:59:44」のような形でカウントダウンが進みます。ただし省電力モードになると1分更新になり秒表示はナンセンスになるので、「残り:59分」のような表記に変わります。普通に時刻も見られる点も良い。時刻よりカウントダウンをもっと大きく見られた方が嬉しいですが。なお「インフォグラムモジュラー」はSeries 4と5専用だったかも知れません。Series 3以前では「モジュラー」か「モジュラーコンパクト」で代用できるんじゃないかと思います。

次点は「Siri」フェイス。残時間の表示はダントツにデカいです。時刻と同等。

ただし各モジュール毎の通知カードがどんどん入れ替わってしまうので、常時ここにタイマーがいることが保証されません。例えば時間の近づいたスケジュールが来るとそちらが上にきて、タイマーが下に降りていってしまうということです。もしかするとカウント中は優先順位が上がって常に一番上に居続けてくれるかもですが。もしくはモデレーション専用にしてタイマー以外のカードを全て非表示にしてしまう手もありますが。もしタイマー発動中は常時この位置に居続けてくれるならこちらばベストかも知れません。あとは数字でみたいかバーグラフで見たいかお好み次第ですかね。なお「Siri」フェイスはSeries 4より前のモデルでも利用できます。

「Siri」フェイスで表示情報を減らすには?

これめっちゃわかりづらいですが、iPhoneのWatchアプリで、「マイウォッチ」タブから「時計」を選び、一番下の「Siri文字盤データソース」です。極端な話ここで「タイマー」以外全部オフにすれば他のカードに邪魔されることはなくなるでしょうw。

いずれの場合も、カウントアップ時にアラーム音が鳴らないようミュートにしておく必要があります。その場合、時間がくるとバイブレーションで知らせてくれます。またメッセージが届いた場合でも同様にブルッと震えるので、相手に知られずに通知を受けることができます。これは一般的な腕時計では適わないスマートウォッチならではのメリットでしょう。

セット方法は上記のタイマー表示部分をタップするなどしてアプリに移動します。写真の1時間、2時間のショートカットの他に、1分、3分、5分、10分、15分、30分のボタンが並んでいます。写真は一番下にスクロールした状態で、「カスタム」を指定すれば75分とか90分といった好きな時間をセットできます。カスタムは最後にセットした時間を憶えてるぽいので、1タップだけ増えますがまぁ問題なさそう。

■自作アプリの夢も広がる

最近のwatchOSではアプリとしての自由度も上がってきてますので、

  • 一定時間毎に知らせる
  • タスク達成時間などを記録するラップ機能

などを搭載したUT専用アプリを作るのも面白いかも知れません。残念ながら省電力モードになってしまうと表示読めなくなってしまいますが、、この辺りはSDKの仕様や省電力設定をまた調べてみようと思います。

 

ユーザテストでの会話をリアルタイムで観察チームに中継する

Pocket

ユーザテストの音声収録機材について、下書きでずっと放置されてた記事を3件公開しました。これらは主に後行程で聞き返す時や書き起こし向けに良い音質で収録をするための考察でした。

しかし現場ではリアルタイムで隣室の見学者に明瞭に聞こえることもまた重要です。今回はそれについて使えそうな機材を紹介、検討してみます。

まずビデオカメラで収録をしている場合。カメラ内蔵マイクで背後から録ることはあまり推奨しないと以前の記事で触れました。ここではなにかしらの外部マイクを使ってカメラまでは綺麗な音が来ているとします。一般的なビデオカメラで録画中に音声を出力で経路は、

  • HDMI端子
  • ヘッドホン端子

でしょうHDMIの場合、画像と一緒に1本のケーブルで伝送できますので、観察側にHDMI入力のついたモニタを設置すれば万事解決です。ただし機種によって録画中はHDMI出力されなかったり、各種インフォメーションが消せなかったりするものもあるので注意が必要です。

ヘッドフォン端子はもちろん音声だけです。例えばインタビュー中心の実査で、マジックミラー付きルームで音だけ明瞭に中継できれば良い、という時なんかはこちらを使う手もあります。ビデオカメラではなくICレコーダーをマイクに使っても良いでしょう。

その場合、普通のミニプラグのついた音声ケーブルで引き回しても良いのですが、一般にヘッドフォン端子からの出力はレベルが低く、そのままヘッドフォンで一人が聴く分には良くても、複数人向けにスピーカーから出そうとすると別途アンプで増幅する必要が出てきます。

そんなケースで個人的にオススメなのが、TV用の手元スピーカーと言われるジャンルの商品です。

要は耳が遠くなったシニアや、夜間に家族に迷惑をかけずにひっそりテレビを視聴したい、でもヘッドフォンや嫌ずら、、という人向けの製品で、伝送方式は有線、無線(電波、赤外線)と色々ありますが、ここでは電波式のものをオススメしたいと思います。送信機を(電源と)ビデオカメラのヘッドフォン端子に接続し、スピーカー本体を観察室に持ち込めば、隣室でしたら配線不要で音を綺麗に中継することができます。製品の性質上、Bluetoothなどと違い遅延を減らすことにこだわって設計されています。σ(^^)はSONYのSRS-LSR100を購入しましたがとても聞きやすく重宝しています。また人の声をより際立たせるモードがついているのもこういう用途に向いていると思います(購入時のレビューはこちら)。普通にアンプ付きスピーカーとしても使えるので、たとえばHDMIで伝送した先がプロジェクターなのでスピーカーがショボくて聞こえない、という時なんかにも使えます。

ちょっちお値段高いなという時は余計な機能を省いた有線商品も。今年も産業技術大学院大学のユーザテスト演習で7チームの環境を同時構築する際にもこうした機材を用意したいなと思いつつも、さすがにSRS-LSR100を7台は買えません。そこで買ってみたのがこちら。

なんとまぁ900円。電源は単三x4本、ケーブルは5mです。動作時間は(音量にもよるでしょうが)約70時間のようです。背面に好きな写真をセットできるという謎の機能までついていますw。5mのケーブルは直付けですが、本体下部に収納ボックスが内蔵されているので、使わない時は割とスッキリ置いておけそうです。人の声だけを際立たせるとか凝った機能はついていませんが、とりあえずビデオカメラにヘッドフォン端子に直結でちゃんと音が出ることは確認しました。同演習は同室内でついたて越しに観察するので5mという距離はまぁギリ足りるかなという感じです(むしろハウリングが心配)。実務で別室までひく場合は延長が必要になるでしょう。でもまぁこれくらいのお値段ならポケットマネーで買えなくもないですね。

ユーザテストの音声録音品質を研究してみる(3)〜ということで購入してみた機材

Pocket

ということで「ユーザテストの音声録音品質を研究してみる」の(1)(2)でUT(ユーザテスト)でどんな音を録るか、良い音声収録するのに参考にしたい基礎知識をまとめつつ、年度末予算(企業の使い切り予算というより、個人事業者はこの時期仕事が増えたり還付金があったりして懐がやや温かい的な意味でw)で機材投資をしてみましたのでまとめてみます。どれもまだ届いたばかりで実践未投入なので、是非使わせていただける機会をお待ちしています。

■ZOOM Q8

やや異様な外観をしたビデオカメラです。正確には、「音声品質を重視したビデオレコーダー」あるいは「映像も撮れるリニアPCMレコーダー」とでもいいましょうか。ZOOMというのはリニアPCMレコーダーやMTRなど音声機材を出している国産メーカーです。ここのレコーダーは特徴の違うマイクユニット(同社ではカプセルと呼んでいる)を交換して使い分けることができる、いわばレンズ交換型カメラのPCMレコーダー版のようなラインナップがあります。例えばこんな感じ。

ガジェット好きにはたまらないギミックですねw。仮面ライダーの武器のようですが、マイクは前記事で書いたように色々な目的で使い分けるものなので、理に適っていると思います。

で、このマイクカプセルをビデオレコーダーでも使えるようにした、というのがQ8というわけです。そしてもう一つユニークでオンリーワンな特徴として「XLRと標準プラグの両方が刺さるコンボジャックを2系統もっている」という点があります。XLRは業務用の2,30万クラスで大型のモデルについていたり、DSLR(デジイチ)のシューにオプションユニットとして追加できる位で、このクラスの小型のものについているのはとても珍しいです。というかこの機種しか知りません。MTRと違い所詮ステレオ2chにミックスして録音録画するビデオカメラに追加2系統で入力が増えてなにが嬉しいんだ、と思われるかも知れませんが、本機はそれらをビデオの音声に好きな音量とバランスでミックスできるのに加え、リニアPCM(WAV)で同時録音することができます。つまり動画ファイルとは別に、内蔵マイクも含めそれぞれのマイクのWAVファイルを並行して作成できるのです。動画(自在にミックスした音声入り)+内蔵マイクステレオ2ch+1ch+1chと最大4本のファイルが時間同期されて保存されます。

さすがに書き込み速度が大変なことになるので、安定動作させるためにSDXCカードもメーカー指定のExtreme Proをチョイス。WAV複数トラックでサイズも嵩むでしょうから128GBでし。

前記事に書いた「あとで音量調整や音質調整をする」という作業がマイク別に行えるので、被験者の声だけもっと大きくしたい、といったことも技術的には可能です。またWatsonなどのクラウドサービスに書き起こしをしてもらう時にも、最初から音声ファイルが分離されていた方が楽という期待もあったり。

ちょっとお高いですが、カメラカプセルを離れたところに設定するケーブルも用意されているので、背後録りで音声だけ前面、というレイアウトも可能です。

ただしカメラとしては微妙なところもあります。基本はビデオカメラというよりアクションカメラに近い仕様で120°の広角レンズで光学ズームもなしです。フルHDよりちょっとだけ高い解像度で録れますので、画角や外周の魚眼歪みが気になる場合はデジタルズームで真ん中を切り出して録ることになります。UTではそもそもそんなに解像度は不要なことが多いですが、これで足りるかは今後検証待ちです。どうも分解すればSマウントというIoTデバイスなどのレンズマウント規格のネジ式でレンズがついてるようなので、頑張ればもっと画角の狭いものやフォーカス距離が短いものに交換も可能かも知れません。Sマウントレンズはネジ固定ですがフォーカス調整も兼ねているため、ピッタリのところで接着剤で固定されてることが多いらしく、気軽につけかえとはいかなそうですが。リンク先の人はマウント自体を交換してしまうという暴挙に出たようですが、これはさすがに原型留めてなさ過ぎですね。付属のレンズフードを改造するか3Dプリンターで複製してフィルターねじをつけられればテレコン/ワイコンやクローズアップフィルターみたいなもので調整できるかも?

逆に良い点として上下反転撮影ができること。これはレンズを増したに向けて書画カメラ的に使う時に三脚ネジを向こう側に向けてられる。しかもQ8のマイク部分は角度がかわるのでマイクを話者に向けることも可能という。こんな感じ。ちょっと存在感ありすぎかなw。この距離だとX-Yマイクでもステレオ感はほぼ出ないので、エコーで声が聞きにくいということはなくそのまま音声録りにも使えそうです。

(写真)

ちなみに、「やはり映像と一緒に聞けてナンボなので別ファイルでどんなに綺麗に録れてもしょうがなくね?」という疑問もあるかも知れませんが、それこを本機と良いところで、録画開始/停止が各ファイルで一斉に行われるので基本同期がとれた状態になります。後で波形をみて少しずつズレして絵と音のタイミングを合わせる、といった作業は不要です。まぁ最近それはAdobe Premiere Proで波形解析して自動同期できることに気付いたので、ICレコーダーで同期無しで録った音でも簡単にあわせられるんですが。

■バウンダリーマイク audio-technica PRO42

そしてせっかくなのでXLRコネクタのバウンダリーマイクも買ってみました。単一指向性で比較的小型なaudio-technicaのPRO42というモデルです。

XLRコネクタのケーブルが直付けですが7.6mもあるので、背後の三脚のビデオカメラから落として床を這ってテーブルの奥側からまわすなどしても十分届くでしょう。

公式サイトで指向特性グラフを見ると、真正面(0°)から左右に60°ずつくらいは十分感度がありそうなので、その範囲に話者が入るようにすればよさそう。

実際にビデオカメラ(HandyCam CX670)内蔵マイクやICレコーダー(SX2000)
、Q8の内蔵マイク、PJP-10URと撮り比べてみましたが、PRO42はとても自然で綺麗な声が録れますね。低音も豊かです。SX2000といい勝負。HandyCam内蔵マイクはやはりゲインも高いけど背景ノイズが大きめ。Q8の標準X-Yマイクはステレオだけあってややエコーがかったような声になります。聞きにくいというほどではないですが。真正面に一人というX-Yマイクがあまり生きないテストだったせいもあります。PJP-10URも声としてはとても聞きやすいフィルターがかかってますが、自然さという意味ではPRO42かSX2000に軍配、という感じです。

また上の写真のようにQ8を書画カメラ的に近距離で使う場合は、標準X-Yマイクでもそこまでエコーが出ないので実用上は問題なさげ。気になるようなら真正面の被験者の音声がモノラルで録れるMSH-6に換装するかも知れません。

 

ユーザテストの音声録音品質を研究してみる(2)〜音声収録の基礎知識

Pocket

前回、ユーザテストではどんな収録ニーズ、要件があるのかをまとめました。それに対して、本稿ではどんな機材や設定、テクニックが有効そうか経験とリサーチでわかったことをまとめます。一部はデスクリサーチに基づき、今後注意したらよさそうと思っている、実地体験を伴わない知識もあるので、勘違いなどあれば是非ご指摘いただければと思います。個人だとそう高価な機材を扱う機会もないし、より多くの現場で適用可能な知見をまとめる意味では現実的なコスパで賄うことも考えなければならないので、マイクだけでン万円とか十数万円といった世界はちょっと除外して考えたいと思います。同様にビデオカメラなども業務用のものは範疇外としたいです(いや「業務」で使うんだけども)。

■マイクの種類

・原理の違い

大きくダイナミックマイクとコンデンサマイクがあります。ダイナミックマイクはカラオケとかで見るハンドマイクなんかで使われてて、安くて電源が要らないし、音源に近い分には十分音が拾える。

コンデンサは小さく感度が高く微細な音も拾えるが、高い、湿気の影響を受けやすい、電源が必要というデメリットも。

・使途別の形状の違い

(写真はイメージ用で、個々のリンク先商品が特別オススメということではありません。典型的な形状のものを選んでいます)

CUSTOMTRY カスタムトライ ダイナミックマイク CM-2000 (マイクケーブル付き)ハンドマイク

マイクのアイコンにも使われる棒の先端にボールがついたようなのがいわゆるハンドマイク。手に持ったりスタンドで固定して口の直近で録る前提。UTではあまり使われないです。

 

audio-technica ステレオマイクロホン(バウンダリー) AT9920バウンダリーマイク

底面がフラットで卓上に置いて使う形状のマイク。背も低くて存在感が低いのでUTではよく使います。単一指向性(後述)のものを二人の間の卓上に置けばちょうど良いでしょう。注意したいのは卓上の振動がダイレクトに響いてしまう為、キーボードやマウスの操作音、スマートフォンを置いたりもったりするゴトリ音などを大きく拾ってしまい場合があること。そんな時はハンカチを敷くなど緩衝材的なものを挟むと良いでしょう。

 

audio-technica ラベリア・マイクロホン AT829H/Pラベリアマイク

タイピンマイクとかピンマイクという親指〜小指大の小さなマイクで、文字通りタイピン型クリップなどでネクタイやシャツの合わせ目など胸元に装着して使う個人用マイクです。個々人の音がはっきり録りやすいですが、UTではいちいち了解をとって取り付けてもらうのも負担ですし、セーターなど不向きな服装もあるのであまり現実的ではないでしょう。紐(コード)がぶらさがるのもなにかとトラブルになったり行動を制限してしまいます。テレビ収録などでよくみるワイヤレストランスミッターをベルトやポケットに装着してもらうものもやはり大袈裟になって現実的ではないと思います。

FOTGA mic-01 ガンマイク スタジオ 指向性 マイク 録音/宅録/生放送/インタビュー 適用ガンマイク

少し離れたところから遠くの音を録るマイク。野外インタビューや野鳥観察などフィールドレコーディングで、周りの騒音を抑えてド真ん前の音だけ拾う超指向性をもっています。被験者の声を非装着で離れたところから拾えますが、感度によっては進行役の声が拾えなくなってしまいます。一人1本用意できればアリかも知れません。

AVANTEK コンデンサーマイク 高音質 単一指向性 3.5mmミニプラグ スタジオ 録音 生放送 ゲーム実況 PC用 MP-9ラージダイアフラムマイク

形状はハンドマイクに似ていますが、コンデンサマイクなので手持ちで乱雑に扱うものではなく、逆にショックマウントという振動を吸収する仕組みのついたスタンドで卓上やアームに固定して使います。ダイアフラムというのはコンデンサマイクの中核となる集音部品でこいつがデカイ=感度が高い、という意味の名前です。形状を表す名前が別途あるかも知れません。最近はYouTuberや歌い手など配信用ニーズが高まっているので種類も豊富です。ショックマウントが付属あるいは一体化したものもあります。

多少設置の配慮が必要ですが基本的にはバウンダリーマイクが手軽で「録ってる感」が希薄で良いと思います。ただし後述の指向性に注意してください。

・指向性の違い

指向性とはマイクがどんな範囲の音を録れるかを指す特徴です。無指向性>単一指向性>超指向性、といった順に音が拾える範囲が狭くなっていきます。双極指向性みたいな8の字的に前と後ろに感度をもつものもあります。

無指向性は全方位区別なく録れます。テーブルの両側に人がいる会議などを録ったりするのに良いですし、うっかり実際中にマイクの向きがズレてしまっても全く音が録れないというリスクは減りますが、逆に余計な背景ノイズ(空調音とか)も容赦なく広いますので良し悪しです。片側に並んで座るUTではもう少し範囲の狭い単一指向性の方が良いでしょう。ただし実際にはもう少し細かい区分(90°とか120°とか)がありますので、並んで座るか、テーブルの角をまたいで座るかによっても最適なマイクは変わってきますし、設置する向きも気をつけなければなりません。90°ならマイク正面に向かって左右に45°ずつの範囲の音しか録れないということになります。しっかり声を拾いたいからといってあまり前に近づけすぎると範囲から外れてしまう可能性もあるので気をつけたいところです。きちんとした商品には指向性を図解したものが仕様表に載っていますので確認しましょう。また少し高くなりますがシチュエーションで指向性を切換できるものもあるので候補に入れても良いかも知れません。

あと英語というかカタカナ語表記でオムニとあったら無指向性、カーディオイドは指向性を意味します。カーディオイドにはサブとかスーパーとか接頭辞がついて指向性の強さを示します。こちらが参考になります。

http://www.shureblog.jp/shure-notes/マイクの指向性:-何を、どこで、どう使う?/

・電源種別

コンデンサマイクには電源が必要です。本体に電池ボックスやバッテリーを内蔵していたり、外付けの電池ボックスが付属しているものもありますが、規格としてはプラグインパワーとファントム(ファンタム)電源があります。

プラグインパワーはビデオカメラやPCの3.5mmジャックのマイク端子から電源を供給できるものです。プラグインパワー対応端子かどうかは見た目で区別できず、カタログや仕様表でしかわからないので注意が必要です。プラグインパワー供給が必要なマイクを、プラグインパワー非対応マイク端子に挿しても音は録れません。電池式はその辺のややこしさはないですが、電池切れのリスクもあります。購入時に気をつけてプラグインパワーのマイクとカメラ(PC)を選ぶのが一番良いんじゃないんでしょうか。最近のマイク端子付きビデオカメラはほぼプラグインパワー対応な気がします。むしろ廉価機種だとマイク端子自体がないモデルがあるので、ビデオカメラ選びの段階でそこを気にしておくと良いでしょう。

audio-technica キャノンケーブル ATL458A/3.0

ファントム電源は写真のようなXLR端子(キャノン端子)を通じて電源を供給するものです。この端子/ケーブルを使うマイクの方がノイズに強いと言われますが、利用できるビデオカメラもマイクも業務用クラスのものになりますので、会議室などでゲリラ的に設営するUTでは、やや非現実的かも知れません。常設型のUTラボを設計する際はテストルームから観察室へとケーブルが長距離になるのでノイズ対策もより重要になり、XLR対応機器で組まれることが多いです。ファントム電源の電圧は何種類かあり48Vが基本ですが9Vや12Vといったものもあるので、マイクの仕様にあわせて供給機器側の設定もあわせてやる必要がある点に注意が必要です。

・マイク配置

ソニー SONY ステレオICレコーダー ICD-SX2000 : 16GB ハイレゾ対応 可動式マイク ブラック ICD-SX2000 B2本以上のマイクでステレオ録音をする時の指向性マイクの配置で、X-YとかA-BとかMSとかいう表記を見ることがあります。基本的には音楽など臨場感をどう出すかといったテクニックの話なのですが、最近のICレコーダー、リニアPCMレコーダー、外付けマイクなどでこれらの言葉が使われていることがあります。これは見た目にわかりづらいですが内部に複数のマイクがついていてステレオ録音できる場合に絡んできます。正直私もこれらをきちんと使い分けて録り比べたことがないのですが、UTの記録としてはそんなに気にすることでもないかなと思っています。そもそもインタビューなどの音声は基本的に下手に響いてしまうステレオよりモノラルで録るのが一般的だと思います。ただせっかく二人の人物を2chステレオで録れるなら、左右に定位が分かれていると、どちらがしゃべった内容か聞き分けやすくていいのかなとも思っていて、この辺りは色々試して見極めをしていきたいテーマです。

・録音機材

マイクからの音声信号を何で記録するかについてですが、まぁUTではビデオカメラで映像と一緒に記録するのが基本でしょう。映像と一緒に見てナンボのものですし。ただしより明瞭に録音した場合や、万一ビデオカメラがトラブったりした時の保険として音声レコーダーを使うことがあります。音声レコーダーにはいわゆるICレコーダーというカテゴリのものと、リニアPCMレコーダーとかフィールドレコーダーいうややお高いカテゴリのものがあります。厳密な区別は難しいですがICレコーダーは主に会議や講演など人の声を録音します。人の声の記録に高音や低音はさほど重要でない為、ファイルサイズの小ささを優先してMP3などの不可逆圧縮フォーマットを使うことが多いです。リニアPCMレコーダーはそれに対して音楽や野鳥、電車の音など芸術的、趣味的なものを対象によりリアルに収録することを目的としているのでリニアPCM、つまり無圧縮のWAVやFLAC形式、それもサンプリングレートの高いハイレゾ対応のものが多いです。マイクもそれなりに良いものや上記のX-YやMSといった臨場感高くまた自分でそれが調整できるようになってたりします。ちなみにビデオカメラも基本的には不可逆圧縮で音声を記録します。基本的にはICレコーダーカテゴリの十分でしょう。ただハイレゾが音質のリアルさ意外の面で役立つとしたら、小さい音でもノイズに埋もれず録れるという面です。万一声がすごく遠くて何いってるか聞きづらい時でも、ソフトウェアで音質を保ったまま音量を上げられます。デジタル録音では既定のレベルを振り切った大きな音はクリップといって切り取られてしまいます。これを防ぐためには一番大きな音でもクリップしない範囲に録音レベルを下げて録音しますが、これをやりすぎると今度は小さすぎて聞き取れないということになります。ハイレゾ録音ではこの音量方向の解像度が高いので、低めのレベルで録っても後で調整が聞くわけです。ちょうどデジカメで高画素数のカメラで撮った写真は、一部を拡大しても綺麗に見えるのと同じです。この音量方向の解像度を示すのが量子化ビット数という数値になります。例えば16bitだと音楽CDと同じ。ハイレゾだと24bitとかです。パット見そんなに違わないようですが1bitの違いは解像度が2倍になることを意味してるので、16->24bitでは2の8乗=256倍の解像度をもってることになります。つまり24bit収録してあれば256倍に拡大(音量増幅)しても16bit収録相当の音質を保っていられるわけです。後工程で大きくする手間を厭わなければ、もう録音レベルとか気にしなくて良いとすら言えそうです。社内で内製のUTで、万が一取り損ねたセッションや区間があっても「まぁいっか」で済むプロジェクトなら正直そこまで気にすることもないでしょうが、納品物として万一にもミスは許されない場合や、あとでしっかり書き起こししたい場合などにはハイレゾやリニアPCM録音、そして後述のノイズ対策にこだわってみてもいいかも知れません。

・ノイズ対策

UTやインタビューの記録では基本的に人の声以外はノイズです(製品が出す効果音や音声など一部例外はあるでしょうが)。できれば排除したいです。声がノイズに埋もれて聞き取りづらいと聞き返していてストレスになります。特に後でしっかり書き起こしもするようなケースではしっかりノイズ対策して聞き取りやすい収録を心がけたいものです。

UTは基本室内録りなのでありがちなノイズ源としては空調音や打鍵音/クリック音などの操作ノイズ、あとはケーブルを長く引き回した時にのりやすい電気的信号的なノイズ(ホワイトノイズとかヒスノイズといわれる「サー」という音)があります。良いマイク/録音状態で声だけが大きく録れていればこれらはあまり気にならないですが、声の録音レベルが小さくなればなるほど、これらのノイズと相対的に音量差が小さくなり聞き取りづらくなります。再生音量を上げてもノイズも一緒に大きくなるだけであまり聞きやすくはなりません。しかもクシャミや咳、爆笑といった突発的な音で耳を痛めるリスクすらあります。声は大きく、ノイズは小さく録る(S/N比を高める)工夫が重要です。

今はデジタル加工ソフトも進化していて後からノイズを消すことはある程度、というかかなり綺麗に消せますが、手間を考えると最初からS/N比が高く無加工ですぐ分析や書き起こしに使えるに越したことはありません。ただどうしても重要なセッションで手間暇掛けてでも聴ける状態に加工した場合はそういう手段もあると憶えておくと良いでしょう。個人的に最近使い始めてるのはAdobeのAudition CCというツールです。またCUIでフリーのSoXというソフトもコマンドラインからかなりの加工ができるので、10セッション分の音声データを一括加工、とかいった場合に憶えておいて損はないと思います。

さて、話を戻して録音時のノイズ排除について。まず空調音のノイズはICレコーダーなどだったらローカットフィルター(もしくはハイパスフィルター)をオンにしておくと良いです。

打鍵音などの操作音はテーブルの振動を通して伝わる部分もあるので、バウンダリーマイクなら下にハンカチや防振マットのようなものを敷くと良いでしょう。三脚ネジ穴のついたマイクやICレコーダー用には、最近こういうショックマウントを見つけました。

これは上側が三脚ネジ(1/4インチねじ)になっているので、ねじ穴がついているICレコーダーなら取り付けられます。ただし下側がビデオカメラのシューマウントになっているので、これを外し、別途下記のネジ後継変換アダプタが必要になります。

効果の程は次の実査で試してみたいと思います。

以上、マイクにまつわる専門用語や規格について、UT文脈で向き不向きをまとめてみました。

ユーザテストの音声録音品質を研究してみる(1)〜そもそもどんな音を録るのか

Pocket

最近、音声ファイルを書き起こしするフロントエンドアプリの開発している関係でこの本を買って読んでみたところ、色々とビョーキが出て音声収録機材を刷新したくなりましたw。この本、雑誌連載をまとめたもので、区切りが短く基礎的なことからまとまってて、普段なんとなく使っていた用語や概念の再整理ができてとても参考になりました。映像作品やライブ収録する人だけでなく、今だとインタビュー収録や自撮りネット素材作りなど幅広いニーズがあると思います。

■普段撮る/録るもの

さて、今の仕事でσ(^^)が収録機材を直接用意する必要はないので、どちらかというと普段のUT(ユーザテスト)やインタビューを撮るためのものです。UTだと映像も画面収録などで合わせて行います。その意味で、ビデオカメラの位置が被験者さん(モニターさん)の背後からディスプレイを撮ることも多いのですが、カメラ内蔵マイクだと遠くなってしまうので、外付けでマイクだけ卓上に置いたりするのが望ましいです。PCなどで直接画面収録ソフトで録画する場合は(ノートPCの内蔵マイクはいまいちなので)Webカメラのマイクを使ったりもします。お気に入りは先日も紹介したYAMAHA PJP-10URやLogicoolのWebカメラなど。

(このPJP-10UR、生産完了が発表されました。近日中に入手不可能になるので代替推奨品を探すことも特集の目的としたいです)。

また最近はクラウドサービスによる書き起こし(Speech-to-Text)が発達してきて、完璧とまでは言わないまでもそこそこの精度の書き起こしが、安く速く利用できるようになってきたので、分析や納品物としてテキスト化も視野に入れていきたいと考えており、収録音声の品質に気を配っていくというのを今年のテーマにしようと考えました。

一般的なUTでは1-on-1つまり被験者さんと進行役(私)の二人が並んで座り、被験者さんがPCまたはスマートフォンを操作している様子と会話を録ります。部屋はクライアント社内の一般的な会議室を使うことが多く、ほぼほぼ静かですが、場合によって隣室からの音が漏れ聞こえてきたり、空調音が気になったりします。またバウンダリーマイクやICレコーダーを卓上に設置すると、キーボードやマウスの操作音がやたらうるさく入って煩わしさを感じたりすることもあります。

今関わってるプロジェクトでは個々人の発言にフォーカスを当てるので話者別トラック収録が重要になっていて、一人一人の話者にマイクとつけたりしますが、UTでは今のところそこまでの必要はありません。ただもしテープ起こし業者に投げるならステレオでなんとなく二人が左右に分かれて聞こえると喜ばれるかな、くらい。WatsonなどのSTTサービスがそういう定位情報を話者特定に利用しているかどうかは不明ですが、もし効果があるならそういうことも重視した方がいいのかも知れません。ともあれ現状ではインカムやラベリアマイク(タイピンマイク)で一人ずつ収録ということは希です。60分や90分で次々被験者がかわるので、その都度マイクを身につけてもらったりするのも面倒ですし、そもそもあまりそういう録音を意識させない方が率直にくだけてしゃべってくれるような、収録慣れしていない人が相手ですので。その意味で、手持ち機材ではSONYのICレコーダーICD-SX2000が2つの単一指向性マイクを個別に角度調整できるので、二人の真ん中においてそれぞれに向ける、というセッテイングくらいが手頃な感じ。

今までメインで使ってきたのは、

・背後から三脚に乗せたビデオカメラでディスプレイを撮る場合

歴代のHandyCamを使い、アクセサリシューに取り付ける純正オプションのBluetoothワイヤレスマイクを使います。

マイクだけを正面の卓上に置いておけば、背後からの撮影でも声はよく拾えます。私はこれの前々モデルくらいのを使っていますが、現行モデルはマイクユニットに外付けマイク端子がついてるので、更にバウンダリーマイクやラペリアマイクをつけられるのも良いですね(あまり指向性の高いマイクを使うと、二人のうち一人の声しか拾えなくなるので注意が必要です)。なおアクセサリーシューがない他社カメラでも、マイク入力があればこっちが使えます。

これらはさほどメカに強くないインタビューワーでも簡単に扱えるのでオススメなのですが、最大の欠点はマイク側の電池がいつのまにか切れていて音声が途中から全く録れてないという状況がしばしば起きるということです。節電のためにセッションの合間にスイッチを切っておいたりすると、これまた入れ忘れたまま始めちゃうことも…

親機側で電波が拾えない時は自動でカメラ内蔵マイクに切り替わってくれたり、せめてアラート音でも鳴らしてくれればいいのですが、少なくとも私がもっている世代のマイクとカメラの組み合わせでは、マイクが切れていても文句もいわず黙々と無音映像を撮り続ける仕様です。

・書画カメラでスマホ画面を撮る

モバイルデバイスのUTでは背後からの三脚撮影は難しいのです。被験者の姿勢変化に追従しないとなので。そこでオススメなのがiZiggiのような小型のUSB書画カメラです。

「このカメラの下で操作してください」とか、カメラ画角範囲を示す紙テープをテーブルに貼って「この四角の中で」などとお願いしておけば万事OKですUSBでつながったツール画面上で露出やフォーカスがあわせられるのも便利。

以前はWi-Fiで映像をとばせるモデルもあったんですが、残念ながらなくなってしまったようです。

・画面キャプチャー収録をする場合

感想戦などで被験者さんが「ここに気付いてませんでした!」とかって画面を指さしたりする様子が録れないという欠点がありますが、最近はPCやスマホ自体で画面キャプチャーをしたり、スマホ画面をAirPlayや外部モニタ出力でとばしてそれを録画することもあります。AirPlayやMiracastならPC/Macの仮想レシーバーソフトがあるので、リアルタイムでPC画面に映し、それをPCの画面キャプチャーで録ったりできます。iPhoneとMacの組み合わせならUSBケーブルでつなげばQuickTime Playerで追加投資なしで録画/録音までできちゃいますね。端末からケーブルを生やしたくない場合はAirPlayでとばして、AirServerReflectorといったソフトで受けて録画するのも便利です。

そういう際でもマイクはノートPC内蔵マイクは排除したいです。経験上MacBookのマイクなら比較的マシですがWindows機は千差万別。また打鍵音クリック音などがダイレクトに入りまくってしまうものも多いです。以前書いた本でも今書いてる本でも各種セミナーでも「マイクはケチるな」を強調しています。

と、なんだか機材紹介アフェリエイト記事みたいになってしまいましたが、私がやっている規模のUTだと概ねこんなセッテイングパターンが多いです。もしくはきちんとした天井カメラやバウンダリーマイクが固定設置された専門ラボを使うか、ですね。

録りたいのはほぼ人の音声のみなので、映像作品やライブ/コンサート/舞台収録ともちょっと目的が違います(ググるとこういう用途でも機材レビューや解説が圧倒的に多い)。また人の声も忠実に再現するというよりは「何て言ったかはっきり聞き取れる」「何時間も聞いて疲れない」ことが大事だったりする気がします。まぁ感心したとか驚いた、困ったといった感情的なトーンはキャプチャーできるに越したことはないですが。あと出張UTでは手軽に設営できることや、バッテリーマネジメントが簡便なこと、安定して録れること(電波環境で途切れたりしないとか)、撮って出しですぐファイルで納品できること、などが理想としてある感じですかね。

その(2)では、そういう収録に特化した機材や技術についてリサーチした結果をまとめ、その(3)で実感的に購入してみた機材のレビューをしたいと思います。

IBM Watsonを使ってUT発話記録を書き起こして動画眼で眺めてみた

Pocket

普段、自分の業務ではあまり必要になったことないんですが、先日業界の飲み会で割とUT記録の書き起こしして、そして苦労してるんだなと感じたので、ちょうどいま別件でWatsonを活用する仕事に関わってるのでAPIの勉強がてらツールをプロトタイピングしてみました。
UTの動画ファイルから音声を分離し、Wasonにアップ、返ってきたJSON形式のテキストを見やすいタブ区切りテキストに変換し、拙作のフリーソフト動画眼(タイムスタンプ付きテキストをクリックすると動画の頭出しをしてくれる)に元の動画といっしょに食わせるところまで成功。

その様子がこちら(文字が読めるよう全画面表示でご覧いただくことをオススメします)。

精度としては感覚的に6割以下ってところですかね。モデレーターの「よろしくお願いします」みたいなはっきりかつ頻出なフレーズはちゃんと拾えるけど、被験者の思考発話は途中で途切れたり文章として成立しない場合も多いので、AI補完が入って語尾が勝手にかわったりしがち。単語も全然違ったりしてます。アスキングのコメントは少しマシですかね。まぁ、それでも、

  • 動画からあるシーンを探し出して見返したいというスポッティング作業の効率向上
  • ゼロから手で起こすより、これを直していった方が早いのでは仮説(対応してくれる業者いるのかしら)

とか場面を限定すれば実用性はありそう。

費用感ですが、本ツールを無償で公開したとして、WasonのSpeech To Text APIの利用料が(辞書登録など音声モデルのカスタマイズをした場合で)$0.03/分なので、60分のセッションを丸起こしさせたとして200円くらい?音声ファイルの長さで計算されるのか、変換にかかった時間なのか不明あやふやですが、実際変換はほぼ実時間くらいかかるのでどちらでもそう変わらないかと。結果がいまいちで、そのタスクや業界固有の用語を辞書に追加したりして何度かやり直しかけたりしてもまぁそんなにスゴい値段にはならないかと。

以下ざっくりステップ毎に解説。

0. WatsonのID取得

先日無償化が発表されましたがSpeech-to-Textは対象に含まれず。執筆時点で30日無料体験もあります。

1. 音声ファイルの用意

ICレコーダーで録ったならそのまま使える。ビデオカメラやスマホカメラの場合、音声だけ抽出してwavやmp3、ogg、WebM、flacなどにする必要があります。後述のCurlを使うアップロード方法(Sessionless)だと100MBまでしか一度に送れないので、mp3やflacのような圧縮率の高い形式にするのがヨサゲ。可逆の方が精度は出るだろうからflacがいいかも知れない(そういえばFLACで直接録音できるICレコーダーってないのかな?)。まぁコーデックやビットレートでどれくらい差が出るかはちゃんと検証できてないです。

今回は1万円ちょっとするPegasysのTMPGEnc Video Mastering Works 6を使用しましたが、カット編集が不要ならフリーでいくらでもあると思います。>音声分離

2.音声ファイルをWasonにアップロード

専用ツールを開発しない場合、黒い画面で使うCurlというテキストブラウザが使える(ブラウザからでもできると思うけど一括自動かという意味で)。CurlはmacOSなら標準搭載。Windowsだと自分でダウンロード&インストールが必要。そしてコマンドラインオプションとして、アップするファイル名、モデルと言語指定、出力ファイル名、タイムスタンプをつけるオプション、話者識別記号をつけるオプションだと、100文字以上の呪文になる(コード例1)ので、今回ツール1として、Windows向けフォームアプリを作成(画面写真1)。ちょうやっつけGUIですが、音声ファイルをドラッグ&ドロップし、IBM CloudのID&PWを設定したら送信ボタンを押すだけで、結果がテキストファイルに保存されます。認識にはほぼ実時間かかるので、複数ファイルをまとめて逐次処理できるようにしています。

コード例1. Curlによる送信例

↑これが↓こう。

画面写真1. 作成したプロトアプリ

CurlのフロントエンドUIを作っただけなので、Sessionlessなままで100MB制限が残る。もうちょっと真面目に作ってSessionあり(常時通信)で実装しなおせばそこら辺はとっぱらえるし、その気になればリアルタイムでテキストが落ちてくるような形もできるはず。

また辞書登録は未実装。WatonのAPIとしては、例えばサンプルでは「安藤」が「&」に認識いされちゃってるけど、そういうのを狙った表記に寄せられる。また「アイトリプルイー」とか出てきたら「IEEE」と書け、いったことにも使える(とマニュアルに書いてある)。

あと作ってからlibcurlの存在に気付く。これを使う用にすれば別途Curlをインストールすることなしに配布できるのかな?ちょっとライセンス周りを勉強しておきます。C#用のラッパーも見つけました

3. JSON形式からの変換

Watsonからの戻りデータはWebエンジニアさんにはお馴染みのJSONなので普通に眺めるには辛い。

こんな感じ。

単純にtranscriptを抜き出せば良さそうですが、これにはタイムスタンプがついてきません。ので手前の「よろしく」についてる17.8秒という情報を使います。またそのタイムスタンプで誰がしゃべってるかをspeaker_labelsオブジェクトから探してきて、speakerプロパティを抽出する必要がありました。ちなみにcondidenceは信頼度、つまりWatsonの自信度合いで0〜1の値がつきます。

で、これを自動でタブ区切りテキストに変換するため、ツール2としてC#でコマンドラインツールを作成。Visual Studio for Macで作ってmacOSで動いてますが、まぁ前後ツールの関係で実質はWindowsで使うことになりますかね?ただ自分でWatsonに投げられて、Excelで読めればいいやって向きにはMac版のニーズもあるかも知れません。VS for Macが吐いた.exeファイルをVS無しで単体で実行可能にする方法をまだ調べてない…(それよかツール1をMacに対応させた方が早いかもしれません。Xamarin.Formとか使えば両方で動くものにできるんじゃないかと)

ツール2はコマンドラインツールですが、使い方は変換するファイル名をオプションでつけるだけ。ただ後も先も.txtファイルなのでファイル名をどうしようか思案中。今は末尾に.txtをついかしてるので、hoge.txt.txtみたいになってしまう。動画眼で使うなら動画ファイル名と同名拡張子違いが一番都合がいいので、アップローダーで保存するファイル名を、hoge.watson.txtになるようにして、こっちで.watsonを抜く、とかがいいかな。

・タイムスタンプ

Watsonに投げる時に timestamps=true オプションをつけると、上記例の通り単語というか音節ごとにタイムスタンプがついてきます。残念ながら文章単位ではない。そこでひとまとまりの文章の中の最初の固まりの先頭タイムスタンプをとってきて文章とセットにする、という処理をしている。

・話者認識

同様に speaker_labels=trueオプションをつけると話者情報(speaker_label)がついてきます。デモ動画の中では「」の前にある0とか2が話者コードです。最初の登場人物から順に0からふられてくぽい。この動画では二人しか出てこないはずなんですが、なにかが一瞬1と誤認され、以降0さん(被験者)と2さん(モデレーター)になってしまいました。これも文章単位ではなく音節単位でしかも末尾にまとめて付加されるので処理が面倒でした。また全体としては1つの文章として認識してるのに、話者コードが途中で入れ替わることもあります。片方の発話を遮るようにもう一人がしゃべりだしたりするとそうなりがち。結局transcroptionプロパティを捨てて、alternative1つずつを拾ってつないでいきつつ、話者コードを調べて切り替わった時点で手動で文章も切り離すという処理にし、実装にえらい苦労しました…
数字を名前に置換する機能とかあるといいんでしょうけど、認識してみないと誰が何番になるかわからないので、このJSON変換ツールでというより動画眼なり後段階のツールの仕事にするのがいいかなと思っています。

4. 動画眼(既存ツール)

動画眼はタイムコードとメモがタブ区切りペアになったテキストファイルと、動画または音声ファイルをセットで読み込んで、メモ(発話内容や行動)をダブルクリックすると、そのシーンが頭出し再生される、もしくは再生しながらメモを書き込むとタイムスタンプ付きで記録してくれる、というUT見返し用の拙作フリーソフトウェアで、こちらで配布しています。

今回3.のツール2の出力はこれと互換性があるので、元になった動画/音声ファイルとツール2が出力したタブ区切りテキストを読み込ませることで、サンプル動画のようなことが可能になる。なお、青いフォーカス行が移動してるのは手動で操作してるからです。動画の進行にあわせて自動で進んでくわけではありませんのであしからず。

あとこうなってくると検索機能が欲しいよなってことで、初リリースから十余年を経てついに実装しました(何故か考えたことすらなかったw)。近日リリースします。

まとめ

とまぁ書き起こしてみると大変そうだけれど、一度セットアップしてしまえばそれなりの手軽さでここまでできるよっていう技術デモです。驚愕するほどの認識精度ではないですが、実際にセッションを見ていたモデレーターや見学者が、概要思い出したり、特定のシーンを探す手助けくらいにはなるんじゃないかと。また書き起こしをする際のドラフトに使ったらゼロから手で起こすよりは楽になるんじゃないかとか。精度は録音状態にも大きく左右されますね。今回は10年以上前にとったもので撮影機材は定かではないですが、DVだったような気がします。取り込んだ動画の音声はPCMでしたが途中不可逆圧縮を経たか不明。いずれにせよアップロード段階でMP3にしちゃいました。WAVのままで短い区間で試したサンプルはもうちょいマシだったような気もしますが定量的には比べてないです。別件で携わっている教室のディスカッション起こしは別グループの声とかノイズが多いので話者毎に口元マイクを使って別トラックでとるということをして、精度を追求していますが、UTの実務現場ではなかなか現実的ではないかなと。なるべく高音質に録って、そのままWatsonにいれるのが良さそう。その意味でツール2をセッションレスからセッション通信に再実装して100MB以上のアップができるようにしておきたいところです。

ツール1、2はもう少し整備してから公開しようと思っています。コードが汚いと叩かれそうだけどソースごとGitHubにあげましょうかね。誰かが活用&改善してくれることを願って。まずは多少のセットアップはいとわないので試してくれるクローズドβテスターさんがいたらお声がけください。

謝辞

本記事のトライアルにあたっって、羽山さん(@storywriter)の記事を大変参考にさせていただきました。この場を借りてお礼申し上げます。また今度是非Watsonトークしましょう!

ユーザーテストの被験者やモデレーターの負担を図解する資料

Pocket

以前からセミナー資料とかに使いたかった図解資料を作成しました。絵心がないので、いつか誰かにお願いして描いてもらおうと思ってたんですが、ふと思い立ってとりあえずいらすとやさんのグラフィックを使わせていただきPowerPointの吹き出しパーツでお手軽に。いやぁ、いらすとやさんはなんでもあるなぁ。

ユーザテスト(UT)をしている時に、被験者の人はこんなに様々な不安と負担を追っているんで、モデレーターさんや実験計画立てる人はそれを意識して軽減してあげるよう気配りをしましょう、という啓蒙の図です。解決方法はケースバイケースで、調査目的とのトレードオフを図りながあら考える必要があるので、あえて触れていません。問題提起、問いかけのみです。あなたならどうしますか?

%e8%a2%ab%e9%a8%93%e8%80%85%e3%81%ab%e3%81%ae%e3%81%97%e3%81%8b%e3%81%8b%e3%82%8b%e4%b8%8d%e5%ae%89%e3%81%a8%e8%b2%a0%e6%8b%85

ついでにこちらはモデレーター(進行役)もこんなに同時に色々気にしなくちゃならなくて大変なんです。周りがカバーして負荷分散しましょう的なバージョン。

 

うっかり16:9で作ってしまいちょっぴり汎用性に難アリですが、とりあえず公開。どうぞご自由にお使いください。出典として「道具眼」をクレジットしてもらえると嬉しいです。また改変、翻訳などもご自由に。いいのが出来たら是非教えてください。

元のパワポデータはGitHubに置いてみました。

憧れのアイトラッカーが2.5万円で!OBS Studio導入編

Pocket

前回のエントリーでSENTRY GAMING EYE TRACKERの概要を紹介しましたが、引き続き詳細として録画/配信ツールであるOpen Broadcaster Software (以下OBS)の最新版、OBS Studioを使ったセットアップの概要と注意点を紹介します。

その前に、ごたくはいいからサンプルを、って方の為に最新の録画サンプルを。

前回は出力フォーマットや解像度設定がイケてなかったのでやや低画質のものになりましたが、今回はドットバイドット解像度、mp4出力したものをトリミングして掲載します。時節柄iPhoneのケースを探してみました。あんまりつぶやけなかったので音声は無しです。

今回の知見としては、

  • OBS Classicに比べ新しいOBS Studioでも充分使える(これから導入するならStudioでよさげ)
  • ウインドウキャプチャではブラウザのハードウェア支援をOFFにしないとキャプチャできない
  • さらに、視線キャプチャレイヤーとの位置ズレが上手く解消できないので、基本全画面キャプチャがよさげ
  • しっかり視線を捉えるには、画面の向きと顔の距離に注意

など。

 

■OBS Studio の使い方

まずSENTRY GAMING EYE TRACKER(以下トラッカー)の基本設定を済ませます。そっちも付属マニュアルでは情報が乏しくて、慣れないと苦労しそうですが、それはまた機会があれば別途ということで。概略としては、

  1. SENTRYのSteel Series Engine 3(以下SSE3)をインストール
  2. トラッカーを付属USBケーブルでUSB3.0ポートに接続
  3. SSE3がトラッカーを認識すると追加ソフトとしてTobii EyeX(以下EyeX)のインストールを促されるので従います。場合によってはトラッカーのファームウェア更新も行われます。
  4. トラッカーの取り付けガイドが表示されるので従ってモニター下部に貼り付けます
  5. EyeXでユーザを作成しキャリブレーションを行います

たぶんこんな感じだったかと。

たくさん製品名が出てくるのでもう一度まとめておきます。


・SENTRY GAMING EYE TRACKER

販売商品としてのアイトラッカー製品の名称です。Tobii社のEyeXトラッカーにSteel Seriesのソフトウェアを組み合わせたパッケージです。

・Steel Series Engine 3

ゲーマー用品ブランドSteel Seriesの統合管理ツール。同社のゲーミングマウスやキーボードなども設定できます。SENTRYGAMING EYE TRACKERも同社製品の1つなので、このSSE3を使ってドライバーなどを管理します。

・Tobii EyeX

Tobii製ハードウェアとしての付属ソフトです。SSE3を入れてトラッカーを接続すると自動的にダウンロード/インストールが促されます。ユーザ毎の視線計測のキャリブレーションを行います。またこのツールだけでも画面に視線マーカーを表示することができます。ただそれだとユーザーテスト時に被験者が自分のマーカーをリアルタイムで見てしまうことになりますので、動作確認用という感じです。

なおSSE3もOBS StudioもMac版があるんですが、このEyeXがないばかりに現状Windows専用となっているようです。

・SENTRY STREAING OVERLAY

トラッカーの設定が終わるとSSE3の上に表示されるアプリです。EyeXが検出した視線を直接画面に表示せずOBSなどの対応ソフトにレイヤーとして渡す役割をもちます。マーカーの見た目の設定などもここが担当です。

・OBS Studio

通常の画面キャプチャーとSETNRY STREMING OVERLAYからの視線レイヤーを重ねて、録画や配信をするビデオミキサソフトです。上記ツール群との直接の関係はなく、他にも選択肢はあります。ただこちらがフリーで機能も充分そうなので取り上げています。


さて、初期設定が完了したSSE3はこんな感じ↓。SENTRY STREAMING OVERLAYという項目が表示されています。

1

それを開くと設定画面が現れます↓。

2

残念ながら「チュートリアルを見る」をクリックしてもNot Foundページが表示されるだけです。「視覚化」のところでマーカーのデザインを選び、左のプレビューで確認できます。

「ゲームキャプチャー」でモニタ全体か特定アプリかを選択します。ここでは「モニター」をチョイス。

「ロゴの配置」では透かしの位置が選べますが、透かし自体不要なので「透かしの無効化」をチェックし、「保存」。

最後に右上の「ストリーミングのオーバーレイ」スイッチをオンにしてウインドウを閉じます。SSE3のウインドウも邪魔なので閉じておきます。

ようやくOBS Studioの準備に入ります。原稿執筆時点のダウンロードページはこんな感じ。左側のWindows用OBS Studioをダウンロードし、インストールします。

5

初期起動画面はこんな↓。

6

とりあえず「シーン」は忘れて最初からあるものを使います。その下の「ソース」という部分に画面キャプチャーと視線レイヤーを追加します。まず「ソース」の白枠の中で右クリックし、「追加」から「画面キャプチャ」を選択。

7

こんなダイアログが出るので、そのまま「OK」。8

画面キャプチャの詳細画面が出ます。マルチモニタ環境の時は、トラッカーを取り付けたモニタを選択します。「カーソルをキャプチャ」は文字通りの意味です。ユーザテストなら入れておいが方がいいでしょう。

9

同様に「ソース」の「追加」から「ゲームキャプチャ」を選びます。今度はわかりやすいように名前を「視線キャプチャ」とでも変更します(しなくてもいいです)。

10

するとまた「ゲームキャプチャ」の詳細設定画面になります↓。

11

ここではまず「Mode」を「Capture specific windows」に変更。すると「ウインドウ」欄が選べるようになるので、「[SSOverlay.exe]: SteelSeries Sentry Streaming Overlay」にします。さきほどSSE3上に出ていて、マーカーのデザイン設定をしていたアプリ名ですね。他には「透過を許可」にチェック。こっちでは「カーソルをキャプチャ」はオフでいいでしょう。

ここまで終えると、OBS Studioのメイン画面がこんな感じになっているんじゃないでしょうか↓。「ソース」には「視線キャプチャ」と「画面キャプチャ」が並び、上に視線マーカー入りで画面全体のプレビューが映っている感じ。ソースは重ね順を示していいるので、画面キャプチャより視線キャプチャの方が上にいる必要があります。

15

また「マイク」は被験者の声のレベル、「デスクトップ音声」はWindows自体が発する音(動画の再生音など)のレベルを示しています。適切にレベル調整しましょう。「シーントランジション」はここでは放置でOKです。

プレビューが正しく表示されない場合は、ここまでの設定を見直してみてください。上手く表示されていたら次は録画や配信の「設定」に進みます。

「映像」設定画面で保存/配信される「出力(スケーリング)解像度」を選択します。基本(キャンバス)解像度」と同じにしておけばドットバイドットです。下のふたつは画質と負荷のトレードオフで色々調整の余地がありますが、とりあえずそのままで。

14

今回は配信は置いておいて、録画についてだけ。「出力」設定画面に行きます↓。

13

まぁ、お好みやニーズ次第なんですが、とりあえず「録画フォーマット」は標準のflvよりもmp4が良いでしょう。HLSストリーミングサーバーにアップロードできるm3u8形式もあります。ファイルの保存先として残量が充分にある場所を「録画ファイルのパス」で指定します。

エンコーダーは「x264」、「ハードウェア(QSV)」、「ハードウェア(NVEnc)」などが環境によってあったりなかったりだと思います。ざっと違いを説明すると、

・x264

どんな環境でも利用可能。ソフトウェア(CPU)で圧縮します。画質は良いですがCPU負荷が高いです。非力なPCだったり録画対象が高負荷の3Dゲームだったりすると動作に支障が出るかも知れません。発熱量なども増えがちなので長時間安定して稼働できるかしっかり事前に検証しましょう。

・QSV

ここ数年くらいのIntel製CPU(CoreシリーズやCeleronなど)に搭載されたハードウェア支援機能です。感覚的にはWindows8世代くらいならまず対応してるんじゃないでしょうか。逆にAMD製CPUのPCだったりすると使えません。

・NVEnc

こちらもここ何年かのNVidia製グラフィックボード/チップGeForce搭載機で利用できるハードウェア支援機能です。比較的お高い目のものならノートPCでも対応していたりします。まぁ、そういうクラスならそもそもQSVにも対応してますが。もしお使いのデスクトップ機のCPUが古いIntel製だったりAMD製だったりしてなおかつx264では充分な性能が得られない場合、グラフィックボードをNVenc対応のGeForceにしてみるのも手かも知れません。なおGeForceならなんでもいいわけではないのでご注意ください。

ということで、まぁQSVやNVEncが使えるなら使っておいた方がCPUの負荷が抑えられてオススメです、というところです。

さて、ついにここまでで一通りの設定が完了です。OBSは設定を記憶してくれるようなので、最初に設定を決めてしまえば、後は楽だと思います。さぁ後は「録画開始」を押せばOKです。

■視線が上手く捉えられない時のTips

基本的な設定ができていて視線マーカーも出る時は出るんだけれど、やってるとちょいちょい行方不明になる、という不安定さがある場合は、EyeXでのキャリブレーションに問題があるのを疑ってみます。

タスクトレイのEyeXアイコンが白丸2つの時は両眼がきっちり計測できています↓。

16

これが白丸1つ(片眼のみ認識)や「××」になってるとトラッカーが目を見つけられていないということになります↓。頻繁にこれが起きてるようだと再調整が必要です。17

再調整の入り口はちょっとわかりづらいです(最初はウィザードでなんとなくできてしまうんですが…)。EyeXアイコンをダブルクリックすると、こんな画面がニョキっと出てきます↓。

18

一番下の濃い黒の部分をクリックすると今度は左にニョキっとサブメニューが出てきます↓。

19

ここで「Test your calibration」を選び、全画面のテスト画面になったら右下の「Recalibration」を選びます。ここで黒い枠に目を表す2つの円が出ますが、この色がグレーの時は距離が遠いです。くっきり真っ白くなる距離に近づいてみます。また画面をまっすぐに見た時に円の位置が極端に端に寄っている場合はモニタの角度を変えてみると良いようです。視線の向きに対して画面が垂直になるようにしてみてください。普通は液晶って机上面に対して垂直にしがちですが、少し上向けにするか、モニタ自体を高い位置にすると良いでしょう。