錯誤試行

PCや生活の試行錯誤の成果を報告するブログ

Android上のEmacsでミニマムテープ起こし環境を整える

ひとまずのメモ書き。

Termuxでmpvをインストールする。Termuxについては以下の前回の記事を参照。

以下の記事を参照してmpv.elを入れて設定する。後は使い方まで含めて記事中に全て書いてあるのでそちらを見ればよいのだが、Termuxという環境での設定記録として若干のカスタマイズと補足を書いた。

Termuxにはmozcが無いのでskkAndroidIMEを利用する。ただしAndroidIMEは最下段に表示され変換を確定するまでEmacsに反映されないのでやや使い勝手が良くない。

  • ショートカットを変更

以下のようにショートカットを変更した。本来はC-M-kのように設定したかったが、ターミナル上では「C-」の組み合わせが特定のキーしか有効にならない*1ため。

ショートカットキー 機能
M-k 再生/一時停止
M-, 少し戻る
M-. 少し進む

mpv.elの以下の箇所のキー設定を変更する。

(global-set-key (kbd "M-k") 'mpv-pause)
(global-set-key (kbd "M-,") 'mpv-seek-backward)
(global-set-key (kbd "M-.") 'mpv-seek-forward)

なお、リンク先記事のmpv.elのコードに記載されている「H-」とはHyper(Windowsキー)のことだが、BluetoothキーボードのWinキーを押しても反応しなかった(ターミナルなので当然か)。

  • 再生

M-x mpv-play→ファイルを選ぶ

  • リンクの挿入

「C-c C-l」→「Link:」が表示される→「mpv」を入力→音声ファイルをフルパス指定→RET RETでリンクが挿入される。リンクの上で「C-c C-o」すると再生が開始できる。Termux上のEmacs24という環境のためか、音声ファイルを指定する際にはミニバッファに(no completion)と表示されておりファイル名の補完機能は効かなかった。

  • 再生位置の挿入

「C-c C-x -」すると再生時刻が挿入される。挿入された時刻の上で「C-c C-o」するとその位置へ飛ぶ。本来は「M-RET」で挿入されるはずだが、Termux上のEmacs24という環境のためか挿入されなかった。

  • これはできないか?

モードラインへの再生時間表示。標準であっても良さそうな機能だが、現在の再生時刻を確認するには「C-c C-x -」して知るしかない。

  • GNURoot Debianではどうか?

Termuxとは別のターミナルアプリ「GNURoot Debian(Google Play)」にはTermuxにはないemacs-mozcパッケージが存在するためGNURoot Debianでのテープ起こしを考えたが、GNURoot Debianにはmpvパッケージが存在するものの以下のエラーが出てmpvが実行できなかった。

mpv: error while loading shared libraries: libx264.so.142: cannot enable executable stack as shared object requres; Permission denied
  • まとめ

基本的にシングルタスク・シングルウィンドウのAndroid端末では、単体でテープ起こしをすることは不可能だったが、Termux+Emacs+mpv.elの導入により、AndroidBluetoothキーボード*2(とできればカナル型イヤフォン)さえあればいつでもどこでもEmacsによるミニマムな快適テープ起こし環境が可能となった。記事中のリンク先をはじめとした先人に感謝したい。