QCPデータとは
Qualcom PureVoice

つまり、このアプリを使えば、au携帯でボイスメモを作ってEメールでPCに送って聞いたり、逆にPCでボイスメモを作って携帯に 送って聞くことができます。PureVoiceでqcpファイルをWindows標準のwav形式に変換することもできます。 パケット定額制前提で、沢山の相手に一度に音声メッセージを届けたい時は便利ではないでしょうか?
QCPデータ形式
まずRIFF(Resource Interchange File Format)チャンクです。固定12バイトです。
始めに4バイトのアスキー文字で「RIFF」=(52 49 46 46)が入っています。次はファイルサイズ(4バイト)です。これは全体のファイルサイズから8バイトを引いた大きさが入ります。
この例ではファイル全体の大きさが3464バイトなので、16進に直すと0000 0d88、ここから8(RIFFの4バイトとサイズを格納する場所の4バイト分)を引いて0000 0d80。
これを16ビットリトルエンディアンで入れるので「80 0d 00 00」が入ります。
次にフォームタイプですがこれは4バイトのアスキー文字で「QLCM」=(51 4c 43 4d)が入っています。(qualcomの略か?)
次はフォーマットチャンクです。大抵158バイトです。
始めに4バイトのアスキー文字で「fmt(space)」=(66 6d 74 20)が入っています。次はチャンクサイズ(4バイト)です。
これ以降のチャンクの大きさを示しています。この例の場合、0000 0096なので150バイトになります。
次はmajor version(1バイト)=01, minor(1バイト)=00なので、このファイルがQCELP13KまたはEVRCで圧縮されたことを示します。
次の148バイトはCodec-Infoです。この中にGUID,バージョン,名前(Qcelp 13),平均BPS,パケットサイズ,ブロックサイズ,サンプリングレート,
サンプルサイズ,可変レート情報が入っているはずですが、詳細は省きます。
これらの詳細についてはRFC3625をご覧ください。
次はvratチャンクです。固定12バイトです。
始めに4バイトのアスキー文字で「vrat」=(76 72 61 74)が入っています。次はチャンクサイズ(4バイト)です。
これ以降のチャンクの大きさを示しています。この例の場合、0000 0008なので8バイトになります。
次はvar-rate-flagです。0000 0001なので可変レートで音声パケットが入っていることを示します。
次はsize-in-packetsです。音声パケットが何個入っているかを示します。この例では0000 0094なので148個。
1パケットが20ms分の音声を表現していますので、20ms * 148 = 2960ms。約3秒分の音声がコード化されています。
いよいよデータチャンクです。可変長です。
4バイトのアスキー文字で「data」=(64 61 74 61)が入っています。次はチャンクサイズ(4バイト)です。
これ以降のチャンクの大きさを示しています。この例の場合、0000 0ca3なので3235バイトになります。これ以降に4または17または35バイト構成の
音声パケットが入ります。各音声パケットは20msの音声をコード化したもので、始めの1バイトが「レート」を表します。
まず1/8レート(レートオクテット01)を説明します。
先頭バイト(レートオクテット)が01の場合、音声パケットは3バイト(合計4バイト)です。これは20msの無音または雑音を示します。
次にハーフレート(レートオクテット03)を説明します。
先頭バイト(レートオクテット)が03の場合、音声パケットは16バイト(合計17バイト)です。これは20msのハーフレート音声を示します。
次にフルレート(レートオクテット04)を説明します。(2個のパケット)
先頭バイト(レートオクテット)が04の場合、音声パケットは34バイト(合計35バイト)です。これは20msのフルレート音声を示します。
会話の無音部分は1/8レート(レートオクテット01)でコード化されますので、無音部の多い会話では音声ファイルの圧縮率は高く なります。また、圧縮した音声はどうしても音質が劣化してしまいますので、音楽などの録音には不向きです。
Softalkについて
Softalk + PureVoiceで作った音声ファイルの例:(2009/04/14) 右クリックでセーブしてください。
- 電話です*3
- Cメールを受信しました
- Eメールを受信しました
- 指定外Eメールを受信しました
- ニュースフラッシュを受信しました
- お知らせを受信しました
- おはようございます。お起きになる時間です。
- 朝ですよ。起きてください。
- おはようございます。お起きになる時間です。(男性)
- おはようございます。お起きになる時間です。(年配女性)