我用directX开发的语音采集,以wave格式存放,声音是pcm格式的。请问此pcm(msdn上说是无压缩编码的),是否均匀编码,即如果是8bit就表示256个幅度,相邻幅度间隔相等。还是经过A律或U律压缩的编码1
此问题对我很重要,因为我要直接对语音信号进行处理。必须弄懂幅度的编码。
有个要求,必须能指出权威的资料,比如msdn上介绍(我自己没找到)的等等,其他网站也行!
我确认即给100分!
此问题对我很重要,因为我要直接对语音信号进行处理。必须弄懂幅度的编码。
有个要求,必须能指出权威的资料,比如msdn上介绍(我自己没找到)的等等,其他网站也行!
我确认即给100分!
解决方案 »
- 请问,如何给窗口增加一个属性呢?
- 有点不明白本机端口绑定的问题,请高手解释一下
- ‘年-月-日-时-分-秒’这样的日期是什么类型?
- 请教:如何取得复选框那个方框的尺寸,或者说如何改变其尺寸,谢谢了
- c中取字符的ASCII码用什么函数
- ★★★大讨论:微软的.Net战略,.Passport技术实现,激活技术实现!!!,up,gz有分。★★★
- \_\_\_\_\_\_说肯定说不清楚,谁能给我一个流程图(事件驱动的,最好是VISIO画的),分可不少啊!
- 请问如何安装msmq?
- 求高人解答,郁闷中
- 关于按下f1出现帮助文档的大问题!!
- 我想截获其他应用程序的鼠标状态:比如是箭头还是砂篓,请指点!
- 求助(关于快捷键。。。
http://www.csdn.net/dev/format/windows/wavec.htm
希望对你有所帮助
我变过一个PCM编码的Wave文件处理的程序,截一段给你:#define READPCMFORMAT 0
#define READPCMDATA 1
#define READALL 2#define FILEOPENOK 0
#define FILEOPENFAIL 1
#define FILEWAVEERR 2
#define FILEFMTERR 3
#define FILEDATAERR 4#define CHANNELMERGE 0
#define LEFTCHANNEL 1
#define RIGHTCHANNEL 2 #define MONO 1
#define STEREO 2const LONG sdtFreq=22050;class CWaveFile : public CObject
{
public:
CWaveFile();
virtual ~CWaveFile();protected:
CString m_strFileName;
HMMIO m_hmmio; WAVEFORMATEX m_WaveFormat;
HANDLE m_hPCMData;
int m_bErrFlag;
DWORD m_dwDataBytes;
DWORD m_dwSamples; HANDLE Convert16BitPCMDataToSample(HANDLE hPCMData,int nChannelFlag);
HANDLE Convert8BitPCMDataToSample(HANDLE hPCMData,int nChannelFlag);
HANDLE Convert16BitSampleDataToPCM(HANDLE hLeftSampleData,HANDLE hRightSampleData,int nChannelFlag=MONO);
HANDLE Convert8BitSampleDataToPCM(HANDLE hLeftSampleData,HANDLE hRightSampleData,int nChannelFlag);public:
void SetFileName(CString str){ m_strFileName=str;};
BOOL OpenFile(LPCTSTR lpFileName,UINT uFlag);
void Close();
BOOL ReadPCMData();
HANDLE GetPCMData(){ return m_hPCMData;};
WAVEFORMATEX GetPCMFormat(){return m_WaveFormat;};
DWORD GetPCMDataBytes(){return m_dwDataBytes;};
DWORD GetPCMSamples(){return m_dwSamples;};
void ClearPCMData();
BOOL Play(); HANDLE ConvertPCMDataToSample(HANDLE hPCMData,int nChannelFlag);
HANDLE ConvertSampleDataToPCM(HANDLE hLeftSampleData,HANDLE hRightSampleData,int nChannelFlag); BOOL ConvertToSelfFormat(WAVEFORMATEX *pWaveFormat,WORD dwMaxLimit);
BOOL ChannelMerge(int nChannleFlag);
BOOL Convert8BitTo16();
BOOL AdjustVolume(double dRatio);
BOOL AmplitfyToMax();
DWORD GetMaxRange();
void Standardized(WORD wStandard);
BOOL ChangeSampleFreq();// BOOL CompressPcmData();
};#endif // !defined(AFX_WAVEFILE_H__F1CE8F8D_E5E9_4738_A6A1_118624921F8F__INCLUDED_)
[email protected]