コールセンター等では、ほとんどがリニアPCMのWav音声ファイルとして保存されています。
これをμ-lawに変更したい場合等は、音声ファイルのフォーマットをチェックする必要があります。
まずは、WAVE (.WAV) ファイルのフォーマットを確認しましょう。通常は以下のような構造になっています。(チャンクやRIFF等がよく分からない人はこちらを先にどうぞ)
WAVファイルデータフォーマット例
| 項目 | サイズ (byte) | データ部 |
|---|---|---|
| チャンク識別子 | 4 | “RIFF”(0x52494646)で固定。 |
| チャンク サイズ | 4 | ファイル全体サイズからRIFFとWAVEのバイト数(8Byte)を引いた数 |
| フォーマット | 4 | WAVファイルの場合は“WAVE”(0x57415645)で固定。AVIファイルの場合は“AVI”が入る |
| サブチャンク①識別子 | 4 | “fmt “(0x666D7420)で固定。 |
| サブチャンク①サイズ | 4 | 16 + 拡張パラメータのサイズ。デフォルト値は16 |
| 音声フォーマット | 2 | 非圧縮のPCMフォーマットは1。A-lawは6、μ-lawは7。それ以外はこちらを参照。 |
| チャンネル数 | 2 | モノラルは1、ステレオは2 |
| サンプリング周波数 | 4 | 8kHzの場合は8000、44.1kHzの場合なら44100 |
| 1 秒あたりバイト数の平均 | 4 | サンプリング周波数 * ブロックサイズで求める |
| ブロックサイズ | 2 | チャンネル数 * 1サンプルあたりのビット数 / 8で求める。ステレオ16bitなら16bit*2 = 32bit = 4byte |
| ビット/サンプル | 2 | 1サンプルに必要なビット数。8ビットの場合は8、16ビットの場合は16など。 |
| 拡張パラメータのサイズ | (2) | リニア PCM (音声フォーマットが1) の場合は未使用。 |
| 拡張パラメータ | (*) | リニア PCM (音声フォーマットが1) の場合は未使用。 |
| サブチャンク② 識別子 | 4 | “data” (0x64617461)で固定。 |
| サブチャンク② サイズ | 4 | 波形データのバイト数(総ファイルサイズ – 126) |
| データ | * | 波形データを格納。リニアPCMの場合は時間順に格納される。ステレオは左→右→左→右…のように格納される。8ビットの場合は符号無し整数 (0 – 255)、16ビットの場合は符号付き整数 (-32768 – 32767) で表わす。 |
リニアPCM/μ-law/A-law 等の判別方法は簡単です。上記項目にある音声ファイルフォーマットのチェックを行うだけです。
- 音声フォーマット=0x0001 ⇒ リニアPCM
- 音声フォーマット=0x0006 ⇒ A-law
- 音声フォーマット=0x0007 ⇒ μ-law
弊社では、C言語と.NETで書かれたサンプルソースがありますが、判別するぐらいでしたらそんなの難しくありません。ですので皆さんも少し頑張ってチェックしてみましょう。その他の代表的な音声ファイルフォーマットを以下にまとめておきます。
| 音声フォーマット | 判別内容 |
|---|---|
| Unknown | 0x0000 |
| PCM(Pulse Code Modulation) | 0x0001 |
| MS ADPCM | 0x0002 |
| IBM CSVD | 0x0005 |
| G.711 A-Law(ITU-T G.711) | 0x0006 |
| G.711 μ-Law(ITU-T G.711) | 0x0007 |
| OKI ADPCM | 0x0010 |
| IMA-ADPCM(DVI-ADPCM) | 0x0011 |
| MediaSpace ADPCM | 0x0012 |
| Sierra ADPCM | 0x0013 |
| ADPCM (ITU-T G.723) | 0x0014 |
| DIGISTD | 0x0015 |
| DIGIFIX | 0x0016 |
| YAMAHA | ADPCM 0x0020 |
| SONARC | 0x0021 |
| TrueSpeech | 0x0022 |
| Echo Speech1 | 0x0023 |
| AF36(AudioFile) | 0x0024 |
| Apix | 0x0025 |
| AF10(AudioFile) | 0x0026 |
| AC2(Dolby) | 0x0030 |
| GSM 6.10 | 0x0031 |
| ANTEX ADPCM | 0x0033 |
| VQLPC(Control Resources) | 0x0034 |
| DIGIREAL | 0x0035 |
| DIGIADPCM | 0x0036 |
| CR10(Control Resources) | 0x0037 |
| ADPCM(G.721) | 0x0040 |
| IBM μ-Law | 0x0101 |
| IBM A-Law | 0x0102 |
| IBM ADPCM | 0x0103 |
| Creative Labs ADPCM | 0x0200 |
| FM TOWNS | 0x0300 |
| Olivetti GSM | 0x1000 |
| Olivetti ADPCM | 0x1001 |
| Olivetti CELP | 0x1002 |
| Olivetti SBC | 0x1003 |
| Olivetti OPR | 0x1004 |



