社区
资源
帖子详情
100分求救一个关于wave文件的小问题
Boy_Vc
2002-11-04 07:56:32
我用directX开发的语音采集,以wave格式存放,声音是pcm格式的。请问此pcm(msdn上说是无压缩编码的),是否均匀编码,即如果是8bit就表示256个幅度,相邻幅度间隔相等。还是经过A律或U律压缩的编码1
此问题对我很重要,因为我要直接对语音信号进行处理。必须弄懂幅度的编码。
有个要求,必须能指出权威的资料,比如msdn上介绍(我自己没找到)的等等,其他网站也行!
我确认即给100分!
...全文
30
6
打赏
收藏
100分求救一个关于wave文件的小问题
我用directX开发的语音采集,以wave格式存放,声音是pcm格式的。请问此pcm(msdn上说是无压缩编码的),是否均匀编码,即如果是8bit就表示256个幅度,相邻幅度间隔相等。还是经过A律或U律压缩的编码1 此问题对我很重要,因为我要直接对语音信号进行处理。必须弄懂幅度的编码。 有个要求,必须能指出权威的资料,比如msdn上介绍(我自己没找到)的等等,其他网站也行! 我确认即给100分!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuefl66
2002-12-09
打赏
举报
回复
see
JetLuo
2002-11-06
打赏
举报
回复
代码太长,如需要,发邮件给我!
Jet.Luo@sina.com
JetLuo
2002-11-06
打赏
举报
回复
msdn 上说得对,没有任何压缩。
我变过一个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 2
const 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_)
jian
2002-11-05
打赏
举报
回复
推荐一个网址
http://www.csdn.net/dev/format/windows/wavec.htm
希望对你有所帮助
liugy
2002-11-05
打赏
举报
回复
http://www.sunchina.cc/products/modem/5660.htm
liugy
2002-11-05
打赏
举报
回复
http://www.cnforyou.com/query/bookdetail.asp?viBookCode=5614
目录里边
C++笔试题汇总(6)
企业要求面试者写
一个
最 简单的strcpy 函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好
一个
strcpy 函数吗?我们都觉得自己能,可是我们写出的strcpy 很可能只能拿到10
分
中的2
分
。 读者可从本文...
flash常见
问题
集锦,很适合新手哦
如何加载
一个
SWF
文件
并控制其位置等相应属性……新建
一个
空地MC,将它放在主场景中,实体名改为OK,写AS: loadMovie("test.swf", "_root.ok"); 控制这个MC的位置,大小等相对属性(Property)就会影响调入SWF的位置...
摩尔斯电码
这种代码可以用一种音调平稳的、时断时续的无线电信号来传送,通常被称做连续波(Continuous
Wav
e),缩写为CW。这种代码也可以用灯光、旗语来传送,甚至可以敲击物体发音来传送。在电影“尼罗河的惨案”中,大侦探...
Windows 使用技巧之WinZIP密码破解
WinZip的大名相信大家都听说过,zip的
文件
压缩格式也几乎成了网络
文件
流通的标准。其中WinZip的密码功能的确为用户提供了不少的方便,可是一旦密码遗忘了,或者其他原因而不能用上正确的密码,那么这个方便也变成了...
C++笔试题目大全
单向链表的反转是
一个
经常被问到的
一个
面试题,也是
一个
非常基础的
问题
。比如
一个
链表是 这 样的: 1->2->3->4->5 通过反转后成为 5->4->3->2->1 。 最容易想到的方法遍历一遍链表,利用
一个
辅助指针,存储遍历...
资源
2,586
社区成员
18,441
社区内容
发帖
与我相关
我的任务
资源
VC/MFC 资源
复制链接
扫一扫
分享
社区描述
VC/MFC 资源
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章