■事の顛末(作業だけ知りたい方は飛ばしてOK)
先日、100均のイヤホンを改造して秋月電子のECMカプセルを内蔵した簡易ダミーヘッドマイク(リアルヘッドマイク?)を使い、入浴時の音のバイノーラル録音を試みました。以前製作したファンタム電源をプラグインパワーに変換し、マイク入力をバランス出力するアダプターをタッパウェアに入れて防水したものを利用しました。


記事内容とズレますが、この録音はなかなか良かったです。水対策としてカプセル表面もスポンジで覆いましたが、これが逆に音をすっきりさせ、耳元に近い水の音や身体や髪を洗う時の手先の移動感がリアルに収録できました。イヤホンケーブルがシールド線ではないので電磁波の影響がノイズになりやすいのが難点でしたが、高価な本格的ダミーヘッドマイクを水濡れで壊すわけにはいかないので。で、録音に使っていたMARANTZ PMD561のヘッドホン出力を聴きながら成功を確信していたのですが・・・。


30分以上長回しで録った挙句に最後の瞬間に焦ってレコーダーを落下させてしまい、電源が瞬断しました。拾い上げた時点で再起動がかかっていたので即座にファイルリストを確認しましたところ、ひとつ前の録音までしか残っていません。貸し切り風呂のその日最後の枠を使っていたので、失意の中そのまま撤収して引き揚げるしかありませんでした。

■録音したのに残っていないWAVファイル
録音を開始後に停止ボタンを押さなかった音のファイルは本当に残っていないのか?落下瞬断後のPMD561が再起動し、最新ファイルが残っていない事が確認された時点で、それ以上の録音をして新しいファイルでカードが上書きされることが無いようにSDカードは抜いていました。帰宅後これをWindowsパソコンで見てみましたが、やはり長回しした録音ファイルは存在しませんでした。ICレコーダーの仕組み上、録音が回っている間は本体のメモリーにデータが記録され、録音終了時にWAVやMP3のファイルに書き出される仕組みだと思われますので通常はこの時点で諦めです。しかしダメ元でUndeleteをかけてみたところ、RecorderRec.TMPという削除ファイルがあることが判明しました(フォーマットはFAT32)。このSDカードは当日録音の前に完全フォーマットをしていたので現地での録音以外のファイルはヒットしないはず。録音中の一時ファイルであった可能性が高いです。電源瞬断時に録音は回っていたので、再起動時に残っていた(ファイル末尾が閉じていない)一時ファイルが自動的に削除された可能性があります。そこで、まずこのRecorderRec.TMPを復活させました。元のSDカード上に復活させると元のカードの内容を壊してしまうので、別のドライブにリカバリします。ファイルの容量は長回ししていた時間に見合うサイズ(604MB)です。

■バイナリエディタとSoXでWAVファイルを復元する
試しにこの復活したファイルの拡張子を.WAVや.AIFFに書き換えてみましたが、残念ながら再生できませんでした。そこでバイナリエディタで中を見てみました。先頭にはヘッダ情報らしきものが見えます。8000h以降は何かのデータで普通に考えればここから先はPCMのRAWデータではないかと思われます。ヘッダ部分は録音ボリューム設定などのPMD561固有の録音一時情報が含まれているようです。



そこで、このヘッダ部分(0000hから7FFFh)をカットして残りのデータ部分を別ファイル(input.raw)に保存しました。



SoXのWin32版バイナリをダウンロードしてきました。
https://sox.sourceforge.net/sox.html
これを展開した作業用フォルダに書き出した別ファイルをコピーします。録音時に指定していたフォーマットは48kHz/24bit/Stereoと記憶しておりましたので、soxにコマンドラインでフォーマットを指定し、RAWからWAVへ変換します。

C:\temp>sox -t raw -e signed-integer -b 24 -r 48000 -c 2 input.raw -t wav output.wav

【引数】
-t 音声フォーマット
-e エンコード形式
-b ビット数
-r サンプリング周波数(データレート)
-c チャンネル数

soxにより引数で指定したヘッダファイルが付与されてWAVファイルとして書き出されました。再生してみたところ、失われていた録音データが復活しました。100%完全では無かったかもしれませんが95%程度は復旧できたと思います。録音末尾はノイズでしたのでDAW上でカットしました。

復元したファイルのヘッダ部分。WAVフォーマットでは0x64617461("data")の後に波形のサイズ、それに続いてPCMデータという構造です。


こちらはPMD561で録音に成功している別のWAVファイルのヘッダ部分。


PMD561に限らずICレコーダーの内蔵バッファメモリは短時間のキャッシュ用なのでSDカード上に断続的にRAW PCM DATAを書いている可能性があり、同じ手法でセーブできなかった録音ファイルが復活できるかもしれません。その際は、復活が必要なファイルを追加録音やファイル操作により上書き破壊したりしないように即座にSDカードを抜く、録音した時のフォーマット(サンプリング周波数、ビット数、チャンネル数)を覚えておく、リカバリファイルを同じSDカード上に作らない、MP3のような圧縮音声フォーマットは避けてWAVで録る、といった点に注意しなければいけません。

本記事を参考にした作業は自己責任でお願いします。

(がんくま)