マイコン工作実験日記

Microcontroller を用いての工作、実験記録

SDカードへの通話録音

2009-01-29 23:22:30 | W-SIM
SDカードアクセスができるようになったので、通話音声を録音してみます。とりあえずは、相手側の音声だけを録音です。録音は常におこなうこととし、オフフックした時点でファイル(rec.wav)をオープンすることにしました。WAVファイルのヘッダを書いたら、あとは20ms毎に160バイトづつ書き込んでいくだけです。そしてオンフックされたらヘッダ部分のデータ長部分を更新してファイルをクローズさせます。以下、動作の様子。
> Off-Hook
-I- SD/MMC card initialization successful
-I- Card size: 1882 MB
-I- Block size: 1024 Bytes
DTMF: 1
DTMF: 7
DTMF: 7
ATDT177##0
CONNECT 120000
connected!!
PROGIND:1
On-Hook
ATH
SD_Stop
newname = rec118.wav
SD_Stop
DISC
OK

>
ファイルをクローズしたら、ファイル名を変更しています。今のところブートからの経過秒数をつかってrecXXX.wavという名前にすることにしています。上の例の場合には、以下に示すようにrec118.wavというファイルが作成されています。ホントはファイル名で日付/時刻も表現したいところですが、LFNが使えないのでこれで我慢です。
> fat
-I- SD/MMC card initialization successful
-I- Card size: 1882 MB
-I- Block size: 1024 Bytes

shows directory list...
---------------------
 6676127 2008/11/23 21:09:54 AT91SA~1.PDF
  461024 2008/12/10 18:58:04 AT91SA~2.PDF
  245178 2009/01/01 00:00:00 rec118.wav
     122 2009/01/25 13:59:44 sample.txt
---------------------

dumping sample.txt...
---------------------
This is a sample text file created on the Windows.
If you can read this message, it means you can
access the FAT file.
---------------------
>
Windows Media Playerで再生してみましたが、問題なく録音できているようです。とは言っても、改善すべき点もいくつかあります。
  1. カードの抜挿を検出していないので、オフフックする度にf_mount操作をおこなっている。抜挿を検出して無駄なf_mountを無くしたい。
  2. 相手側音声しか録音していないので、ほんとの会話録音にはなっていない。上り音声も録音すべき。ミックスするまでもなく、ステレオ形式で書き込んで簡単に対応してしまおうかと考えています。
  3. やっぱり、ファイルにタイムスタンプが無いのは淋しいなぁ
順次対処していくことにしましょう。