C#语音识别问题

Neil198 2009-07-13 03:59:14
查了很多资料,都只有语音合成和录音的。没有语音识别的资料。
既然不能实现语音识别那么可不可以让程序监控麦克风,比如当麦克风音量大于50时触发一个事件。

...全文
443 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangzimi 2010-07-22
  • 打赏
  • 举报
回复
需要更多关于语音识别的材料
wangna860823 2010-07-17
  • 打赏
  • 举报
回复
真的很高深,自己需要学习的东西还很多!
风中一匹狼 2010-05-10
  • 打赏
  • 举报
回复
学习一下,完全不懂!
mingys 2009-11-14
  • 打赏
  • 举报
回复
不知道同行们有没有解决语音合成的时候中文发音问题,语音合成的中文太难听啦。
a925907195 2009-10-07
  • 打赏
  • 举报
回复
超晕,头疼,c#弄资料都是很稀少的
sjzhangcn 2009-08-20
  • 打赏
  • 举报
回复
新手,学习了。。。
Neil198 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 yfqvip 的回复:]
捕获MM_WIM_DATA消息就可以得到数据了.
void OnMM_WIM_DATA(UINT parm1, LONG parm2);
parm2里就是声音数据了.
先找个c++的例子看看吧,然后在试试能不能用c#做个类似的.不知道c#有没有封装好的类,如果有就方便了.

[/Quote]
恩,谢谢
qizhicong2 2009-07-13
  • 打赏
  • 举报
回复
说实话,我现在对这个话题很敏感.前段时间有个GG老是发这个类似的标题的帖子来倒粪.
音量是可以检测出来的.捕获到声音数据之后可以计算声音的能量.例如进行FFT变换之后显示波形,这个都是根据声音的能量来计算的.
满衣兄 2009-07-13
  • 打赏
  • 举报
回复
捕获MM_WIM_DATA消息就可以得到数据了.
void OnMM_WIM_DATA(UINT parm1, LONG parm2);
parm2里就是声音数据了.
先找个c++的例子看看吧,然后在试试能不能用c#做个类似的.不知道c#有没有封装好的类,如果有就方便了.
Neil198 2009-07-13
  • 打赏
  • 举报
回复
        [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
public static extern int mciSendString(
string lpstrCommand,
string lpstrReturnString,
int uReturnLength,
int hwndCallback
);


这个是我之前录音的时候的一段代码,直接调用的dll.发送相关命令就可以录音暂停保存。但是在程序中却无法获得保存在内存中的数据。
满衣兄 2009-07-13
  • 打赏
  • 举报
回复
G.723 里有静音检测的代码,你可以下载一个研究一下,静音检测部分在VAD.C这个文件里.
Init_Vad();
if (Comp_Vad((short*)tmp)>40)
{
//声音能量大于40....
}

这样调用一下就可以了.
Neil198 2009-07-13
  • 打赏
  • 举报
回复
(就是试试监控每一秒的音量,不等录完以后再判断)。

打错字了,实时
Neil198 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yfqvip 的回复:]
我这里有些例子,不过都是C++的
1.捕获声音数据(这个步骤LZ应该会吧?就是调用WINDOWS API wave系列函数就可以.用directsound也行)
如果声音是来自文件的就更简单的,例如是wav的,这样就直接读里面的数据,directsound的例子里有封装好的类,使用起来很方便,如果是mp3等格式的,要先解码.
2.得到数据就好办了,计算读到的每一桢数据的能量,如果大于某个门限值则触发相应事件.
3.计算能量可以用fft变化,也可以不变化直接计算.和静音检测的原理一样的.
[/Quote]
第一点之前做过,直接调用的windows api 保存成wav文件。但是边采集边判断音量就不懂了(就是试试监控每一秒的音量,不等录完以后再判断)。

对于第二和第三点之前完全没接触过。看来我还停留在入门阶段呀。。
benzite 2009-07-13
  • 打赏
  • 举报
回复
查查,微软好像有相关的库
满衣兄 2009-07-13
  • 打赏
  • 举报
回复
我这里有些例子,不过都是C++的
1.捕获声音数据(这个步骤LZ应该会吧?就是调用WINDOWS API wave系列函数就可以.用directsound也行)
如果声音是来自文件的就更简单的,例如是wav的,这样就直接读里面的数据,directsound的例子里有封装好的类,使用起来很方便,如果是mp3等格式的,要先解码.
2.得到数据就好办了,计算读到的每一桢数据的能量,如果大于某个门限值则触发相应事件.
3.计算能量可以用fft变化,也可以不变化直接计算.和静音检测的原理一样的.
Neil198 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yfqvip 的回复:]
关于语音识别C++的例子我这里有个,在PUDN上找的.
这方面C#的例子应该比较少.
音量检测不难.找找FFT的例子或者低通滤波的例子看看就OK了.
[/Quote]
刚查了一下,C#这方面的资料基本没有。。
ld1201 2009-07-13
  • 打赏
  • 举报
回复
比较难实现
满衣兄 2009-07-13
  • 打赏
  • 举报
回复
关于语音识别C++的例子我这里有个,在PUDN上找的.
这方面C#的例子应该比较少.
音量检测不难.找找FFT的例子或者低通滤波的例子看看就OK了.
暈哥 2009-07-13
  • 打赏
  • 举报
回复
识别是男是女?
把语音转换成文字?

好像有个软件,你哼歌,它可以把歌找出来,词错了都没关系
Neil198 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yfqvip 的回复:]
说实话,我现在对这个话题很敏感.前段时间有个GG老是发这个类似的标题的帖子来倒粪.
音量是可以检测出来的.捕获到声音数据之后可以计算声音的能量.例如进行FFT变换之后显示波形,这个都是根据声音的能量来计算的.

[/Quote]

能具体点么? 用什么实现。。
加载更多回复(3)

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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