$$ \def\v{\boldsymbol} \def\m{\boldsymbol} \def\trans{^\mathsf{T}} \def\inv{^{-1}} \def\bmat{\begin{pmatrix}} \def\emat{\end{pmatrix}} \def\diag{\operatorname{diag}} \def\tr{\operatorname{tr}} \def\ad{\operatorname{ad}} \def\Ad{\operatorname{Ad}} \def\E{\operatorname{E}} \def\det#1{| #1 |} \def\her{^\mathsf{H}} \def\wed{\wedge} \def\given{\mid} \def\defeq{\triangleq} \def\Ys{{\cal Y}} \def\argmin{\mathop{\mathrm{argmin}}} \def\argmax{\mathop{\mathrm{argmax}}} \def\blockdiag{\mathop{\mathrm{blockdiag}}} \def\inner#1{\langle #1 \rangle} $$

オンライン講義に役立つ機材とソフトウェア (オンデマンド編)

バタバタと試行錯誤を重ねたオンライン講義も,最初のクォーターが終わろうとしている.かなり大変だったというのが正直な感想だった一方,貴重な経験と知見が得られたという思いもある.

どういう機材とどういうソフトウェアを使って実施してきたか,ここら辺で一度まとめておこうと思う.このエントリではあらかじめ録画しておいて講義動画をオンデマンド配信する方式についてまとめる.

なお,実際の動画はすべて公開済みでこんな感じ: https://swkagami.hatenablog.com/entry/comput_01arithlogic


目次:

ハードウェア

ペン入力対応のタブレット PC

普段の講義は黒板とプロジェクタを併用することがほとんどなので,オンラインでもそれに近い情報を提供したいと考えた.といっても,普段どおり黒板に書いているところをビデオ撮影するというのはどうも気乗りがしない.オンラインにはオンラインなりのやり方があるはずだし,なんなら今後の対面講義のやり方すらガラリと変わる転機にできるかもしれない (…とでも思わないと労力に見合わない).

幸いなことに,普段使いしているノート PC がいわゆる 2-in-1 タイプでペン入力可能だったので,これを使って配布資料に手書きで書き込んでいく方式で進めることにした.


結果論になるが,ペンによるタッチだけでなくホバーも認識されること (つまりデジタイザ内蔵のタッチパネルであること) は手書きしながらの説明のしやすさに大きく寄与した.例えば数式を展開しながら「この項とこの項は互いにキャンセルされて消えるので…」みたいな話をしたいときに,ペンをホバーさせて該当箇所をカーソルで指すことができる.これができないと毎回マウスに手を伸ばす必要があってかなりつらい.

あと,これは慣れの問題なのかもしれないけど,カーソルが止まった状態,あるいはカーソルが表示されない状態で,どこからともなく手書きの線がヌルっと出現するのはどうにも気持ちが悪いのだが,ホバーするペン先にカーソルがついてきてそこから線が現れるなら比較的自然に感じる.

ペンタブレットスタンド

タブレット PC をクラムシェルの状態で使っていると,ヒンジ部分の遊びのせいで,ペンで手書きするときに微妙にグラグラしてまともな字が書きにくい.上の WU3/D2 のようなコンバーチブル型でもそうだし,これに乗り換える前に使っていたデタッチャブル型の Let'snote XZ でもそうだったので,構造上しかたのないことなのだろう.キックスタンドがあるタイプなら問題ないのかもしれない.

というわけで,ストレス無く手書きできるにはタブレット状態で使う必要があったのだが,机に平置きするのも書きづらいし見づらい.タブレットスタンドは必須だった.

PC 内蔵キーボードとタッチパッドは使えなくなるので外付けキーボードとマウスも必要.長文を書くわけでも精密作業をするわけでもないので適当なものでよい.

手袋

ペン入力中に手がタッチパネルに触れることによる誤動作を防ぐには手袋をするのが有効であり,「二本指グローブ」などの名前で検索すると出てくるタブレット作業用の専用品が使える…と思い込んでいたのだが,実はそういうのはこの用途では使えない.あれはどうやら手とタブレット面の摩擦を減らすことが目的で,誤タッチ防止に使うものではないらしい.実際,素手よりは反応しにくくなるが,手の側面全体がべったり接触するような場合は普通に反応する.

で,結局 100 均で買ってきたポリエステル 100% の手袋を自分で切って使うのが一番目的に適っていた.具体的な品名としては,セリアのストレッチインナーグローブ (武田コーポレーション製 STG-207) というもの.

ストレッチインナーグローブ.キータイプもしたいので指先は5本とも切り落とした

コンデンサーマイク

オンライン講義について世間で話題になり始めて以来,「マイクは重要」という話をよく耳にしていたので,流されるままに買ってみた.

感想ですが,いやー,扱いが大変ですわ.確かにホワイトノイズは極めて少ない.声もクリアに取ってくれる.と同時に,なまじっか感度がよいだけに生活雑音も盛大に拾ってしまうので相当に注意する必要がある.例えば,マイクスタンドを机に乗せたりクランプしたりする場合,机に乗っている PC のファンの振動とか,机に手首や腕が当たる音とか,そういうのを恐るべき感度で拾ってしまう.机のつくりにも依存するようで,同じような構成で録音したつもりでも,研究室の机では気にならなかった手の当たる音が自宅の机ではどうにも不快な低音ノイズになったりした.

なんだか一時期ノイズ対策のことばかり考えていた気がする.

間違いなく言えるのは,何は無くともショックマウントは用意する方がよい.振動による雑音が明らかに低減される.


マイクアームはあまりよく考えずに選んだのだが,バネの残響がちょっと気になった.ウレタンフォームを挟んだり布で縛ったりするとちょっと改善した.クランプと机の間に振動吸収材を入れてみたりもしたが,そちらはあまり違いは感じられなかった.


手首や腕が机に当たる音については,試しに大型マウスパッドなんてのも敷いてみたが気休め程度だったと思う.一方,低反発素材のアームレストを置くのは効果があるようだ.

台本・ストップウォッチ表示デバイス

台本…といっても話す内容をあらかじめ書き出しているわけではなく,スライドを PDF 化しただけ (配布用と同じもの) である.最初は印刷したものを見ていたが,ページめくりが面倒だし,音が立たないように注意するのにも疲れたので,PDF 表示専用のタブレットを置いておくようになった.

時計ではなくてストップウォッチを用意しておくことも重要だと思う.面白いことに,普段の講義時間であれば時計を見ることで残り時間は瞬時に把握できるのだが,いつもとは違う時間に収録していると,たとえキリのよい時刻に収録を開始したとしても,時計ではさっぱりピンと来ない.スマートフォンのタイマアプリを表示しておくことにした.

いずれも,放っておいても画面がスリープしないようにすることが重要となる.Android の場合,設定 - 開発者オプション - 充電中はスリープモードにしない をチェックしておいて,電源につないでおけばよい.

ソフトウェア

スクリーンキャプチャ: OBS Studio

https://obsproject.com/ja

定番.いろいろ凝った使い方ができるが,今回の講義ではメインの資料のほかに実演用のソフトウェア実行画面とかウェブページを見せたりとかしたかったので,単純に全画面をキャプチャ.

画面キャプチャ領域を設定するときに「カーソルをキャプチャ」をチェックしておくと動画にカーソルを残せる.

音声フィルタは,最終的には標準のノイズ低減フィルタ 20 dB だけを入れる形に落ち着いた.

手書きソフトウェア: OneNote 201x

https://www.onenote.com/download?omkt=ja-JP

最初は PowerPointMicrosoft Whiteboard を行ったり来たりすることを考えていたのだけど,少し試してみるとどうもしっくりこない.PowerPoint 資料を取り込んでそこに直接書き込める方法を模索したところ Microsoft OneNote に行きついた.

OneNote と呼ばれるものには 2 種類あって,一つは Windows 10 に付属するストアアプリの OneNote for Windows 10 であり,もう一つは Office に付属する (が単体でもダウンロード,インストールできる) デスクトップアプリケーションの OneNote 201x である.最新は OneNote 2016 で,私は 2013 を使っている.

これらは同じようなソフトウェアなのだが細かいところがだいぶ違う.講義に使うことを考えると以下の違いが重要になると思う.

  • OneNote for Windows 10 は
    • PowerPoint からインポートしたスライドは単一ページ内にずらりと展開されるので,スクロールで次の資料に進む必要がある
    • 全画面モードでもペン選択ボタンが表示される
  • OneNote 201x は
    • PowerPoint からインポートしたスライドは 1 枚ずつ個別ページになる
    • 全画面モードにするとペン選択やページ選択のボタンが現れない

どちらを選ぶかは多分に趣味の問題だと思う.いろいろ試してみた結果,OneNote 201x の方を使うことにした.

普段の講義資料は 4:3 で作っているので,OneNote 201x の画面を 16:9 のスクリーンいっぱいに広げると,資料はその左側に偏って表示されることになるため右側に空白ができる.上に書いたように全画面モードは使いづらいので,メニューその他の分だけ表示領域の縦方向が狭くなり,右側の空白領域はさらに広くなる.とても不格好なのだけど,逆にここを活用して手書きでの説明領域にすることにした.使わずに無駄に白いだけになるページも多いのだけどまあしかたない.

なお,OBS Studio には指定範囲だけ切り出して録画する機能があるので,OneNote 201x だけで完結するならメニュー領域や空白領域を除外して録画するという手もあるかと思う.私の場合は他のソフトウェアの画面を見せることもあるのでそうはしなかった.

マウスポインタ強調: Kokomite

http://www.orangemaker.sakura.ne.jp/product/Kokomite/

普段プロジェクタを使っている場合のレーザポインタの代わりとして,また,ハードウェアのところで書いたとおりペン先位置を提示することは重要だと考えたので,ポインタ位置を目立たせたい.このソフトウェアはサイズとか色とか透明度とかの選択に自由度がある.

ズーム: ZoomIt!

https://docs.microsoft.com/ja-jp/sysinternals/downloads/zoomit

常用している画面拡大ツールだが,OneNote 201x を使っている限りは,ピンチイン・ピンチアウトする方がよいので出番はない.それ以外の,例えば文字の小さなソフトウェアやウェブアプリケーションの説明をしたいときに使いたくなる.

問題は OBS Studio によるカーソルや Kokomite のキャプチャとの相性が悪い点で,画面拡大中にカーソルが二重になってしまう.そしてこれは録画したものを見返すまで気づかないのが厄介なところ.良い解決法は見出だせていない.

OBS Studio 側で細工する回避策 (要するに,カーソルキャプチャが有効なシーンと無効なシーンを用意しておいて,拡大・縮小と連動して切り替わるようにする) があるようなのだが,面倒すぎるのと Kokomite には適用できないような気がするので試していない.

https://obsproject.com/forum/threads/obs-zoom-problem-with-windows-10.71000/

動画無劣化カット・結合: avidemux

http://avidemux.sourceforge.net/

オンデマンド配信の講義の場合,10 分程度の短い動画に分けるべきか,普段どおり 90 分 1 コマを連続動画とするべきかは議論のあるところで,MOOC などでの知見としては短い方が効果が高いと言われているらしいのだけど,受講する大学生に聞いてみると「いや,面倒なので 1 個の動画にしてください」という声の方が多かったりする.なお,受講者が「好む」のと「教育効果が高い」のは一致すると限らないので,これらは互いに矛盾するものではない.

短い動画に分けるのは,普段の自分の講義スタイルからは隔たりが大き過ぎて対応し切れる気がしなかったので,今回は原則として 1 コマ 1 本の動画にすることにした.

基本的に一発撮りで,編集らしい編集をすることはなかったのだが,最初と最後の部分をカットしたりくらいはしたいことがあって,そのためだけに 90 分の動画を再エンコードするのは避けたい.

avidemuxmkv, mp4 動画を再エンコード無しでカット・連結できるので多用した.ただし,MPEG の I-frame (フレーム間予測を使わずに記録されるフレーム) でカットする場合に限るので,細かく編集したい場合は録画時に I-frame を高頻度で入れておく必要がある.

音声編集: Audacity (+ ffmpeg)

https://www.audacityteam.org/

90 分くらい録画し終わってから,マイクがひどい雑音を拾っていたことに気づいたときどうするか.撮り直すのが最善なのだろうができれば避けたい.

そういうとき,Audacity のノイズ低減エフェクトは,完璧とは言わないがかなり良い仕事をしてくれた.環境設定 - ライブラリ で ffmpeg の DLL を指定しておけば,mp4 動画から直接音声を読み出して処理できる.ただし動画の音声を処理後のもので直接置き換える機能はないので,音声ファイル m4a を書き出させてから ffmpeg で別途置き換える必要がある.

配信環境

動画自体は YouTube に置き,Google Classroom からリンクした.

90 分で 1.5 GB くらいの mp4 ファイルをアップロードするのに 10 分くらい,YouTube 側での処理が終わるのがそこからおおむね 30 分くらい.

再生スピードは普段はちょっと速くしておき,わからなくなったら戻る,という聴き方をする受講生が多いようである.そういう人も少しはいるかなー,くらいに思っていたが,いざアンケートを取ってみると実に大半がそういう聴き方をしているらしい.この辺はオンラインかつオンデマンドならではといえよう.

Google Forms で 3 問程度の理解度チェック問題を出して出欠確認代わりとしている.正答か誤答かは提出直後にわかるようにしていて,〆切までは何度提出してもよいとしている.この回答履歴を見るのも結構面白い.その辺の話はまた別の機会にしようかと思う.