wav文件中如何提取声频信息。

muze 2002-06-17 10:30:39
各位朋友:
我有难了,我需要判断一个wav文件中是否存在一个高频2khz,低频800hz的双频信号,如有,还要记录该信号的持续时长。我研究了wav的文件格式,没有头绪,不知如何下手,那位有这方面的经验可否指点一二,在下给100分。
...全文
39 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
muze 2002-06-19
  • 打赏
  • 举报
回复
我所提取的多频信号是夹杂在不可测的杂音中的,而在现实中的声音是由多个频率叠加合成的,我的难点在于精确可控的判断上,楼上的朋友可否能指点迷津?
ninny 2002-06-18
  • 打赏
  • 举报
回复
一下代码可以划出wav波形:
if (m_bOpen)
{
bool bDouble=(m_PCMWaveFmtRecord.wf.nChannels==2);
switch(m_PCMWaveFmtRecord.wf.nBlockAlign)
{
case 1:
WavVal = (unsigned int) *( (PBYTE)(pWaveStartCount) +i)-0x80;
break;
case 2:
{
WORD tmpVal= *((WORD*)(pWaveStartCount)+i);
if(m_PCMWaveFmtRecord.wf.nSamplesPerSec==8) WavVal=tmpVal-0x80;
case 4:
{
dwVal = *((DWORD*)(pWaveStartCount)+i);
if(bRight) dwVal>>=16;
WavVal=(int)(short)dwVal;
}
break;
case 8:
{
dwVal = *((DWORD*)(pWaveStartCount)+i);
if(bRight) dwVal>>=32;
dwVal|=0xffff0000;
WavVal=(int)(short)dwVal;
}
break;
default:
TRACE("Unknown format\n");
}
return WavVal;

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧