
为了适应广大软件开发者开发语音识别软件的需要,我们推出了《宏乐声纹对比控件》(又名《宏乐语音评分控件》)。通过这个控件可以获得声音句子的纹理,并将特征库中吻合的程度按高低的顺序排列。让软件设计者根据识别的结果控制各种设备或操纵软件执行相应的功能。
注意:要获得良好的识别效果,请用独立的耳麦录音(不要用笔记本电脑自带的麦克风)!
关于控件安装与升级的通知:
V10的版本是中英文混合版,允许在英文系统环境中运行,新的界面控件还增设了Png按钮图片装载功能,与一批可在VB6中使用的精美控件。
《宏乐声纹对比控件》的OCX控件文件名V9以下的版本是:
“C:\宏乐语音评分控件包\HLYYPF_9.OCX”,
V10以上的版本是:“C:\HLYYPF_AnZuanBao\HLYYPF_9.OCX”
(由于命名为HLYYPF_10会导致V9以下的版本升级失败,所以以后的升级版名称还是HLYYPF_9.OCX,不再变动)
A:在VB6中装载本控件的方法:
在软件的“工程”菜单下的“部件”选中“HLYYPF_9”【要注意新旧版本或注册路径的不同,可能会出现两个或多个HLYYPF_9】

确定后,在工具板块上会出现一批新的图标:

然后将黄色的星星图标拖放到窗体中则可,其他是精美的界面图标,可以用于美化界面。
B:在VS2008中加载本控件的方法:
调用首先要将控件放在工具栏内!右击“常规”->“选择项”->“COM”组件->
点击“浏览”按钮找到:C:\HLYYPF_AnZuanBao\HLYYPF_9.OCX 然后“确定”
则可将评分控件以及附带的界面控件在常规板块中显示

然后将黄色的星星图标拖到窗体中则可。
【如果在64位的Win7系统中,如果控件能装载,但运行时总是报类没有注册,解决方法是:
在“项目”菜单点击最下面的“XXX工程属性”选“编译”选“高级编译选项”按钮将目标CPU的值由“AnyCPU”改为“x86”则可。】
V2008下升级时如果报错,请按下面的方法删除旧版本的信息,然后重新装载新版本的控件:
然后删除引用的两项HLYYPF_9的引用
再删除bin\Debug\目录下的两项dll
再删除obj\Debug\目录下的两项dll
重新将黄色的星星图标放在窗体中则可完成升级。
针对个别软件不能接受VB设计的OCX控件增设了《宏乐声纹对比控件》“通用版”
通用版的所有操作完全不用调用OCX的指令或装载OCX……
控件界面说明图如下:

注:控件的界面可以用属性"Visible= false"隐含,也可以通过调整高度显示需要的部分。
|
简要说明 控件的三个板块分别对应: 1.频率变化曲线,就是句子音调高低变化的趋势。 【它们可以独立识别,但只有综合多种因素后的结果才较为精确】 |
主要配件《宏乐句子剪裁器》:
为了高版本的编程软件能正常加载本控件,录音功能已经分离出来,录音是下图的句子剪裁器完成的。选择控件的“显示录音窗”可以看到这个平时不显示的窗体。如果录音总是不符合要求可以按下图的提示设置。

[录音设备尽可能选择立体声混音,这样自动电平才起作用,否则要适当的调整麦克风的灵敏度]
测试方法:
测试的技巧主要是先调整好麦克风的灵敏度,然后点击“录音”,发音停顿则结束录音并评分。此时会看到一条亮青色的变化曲线;之后点击“保存特征”,记录到特征库中,同时会看到亮青色的曲线变为灰色。
如果只是单独对比两个声音特征请将“批量”复选框设为不选,然后在特征列表中选中要对比的内容,这是会看到灰色的曲线对应特征而变化,点击“录音”按钮,录入一个句子,则可看到评分的结果。
V9以上的版本默认录音结束后对比当前特征库的所有特征,并将对比结果从高分到低分顺序排列。
这些过程完全可以用软件通过相应的函数来控制;具体请参阅函数说明。
录音时麦克风不能正对准口中央,你会发现用于语音识别的耳麦麦克风都是偏离嘴巴的。同时不易远距离录音,当有效的声音与环境噪音达不到5倍以上,识别将不理想;最重要的是如何获得连续的频率曲线,如果破碎,要分析原因。对于一个词组或句子来说,曲线断续是正常的,因为一些语音成分没有频率特征,比如声母T、F等,对应它的部分是一个缺口,这里指的破碎是指对应一个字中的曲线是否连续。
峰值曲线的切割是自动的,但要注意录音时是否有干扰的噪音,请留意曲线的头尾是否正常切割,再将它保存到特征库中。
特征库是需要长期训练的,合理的方法是设为对比以后,重录一次,看看分数是否足够高,不高的要重录。
(如果特征曲线总是出不来,请尝试“反向”功能,通常在面板插入的麦克风插孔需要“反向”)
为了提高识别率,不同时出现的特征库要尽可能的分类。假设正在操控一个窗体,而窗体上只有几个按钮,这种情况下应该为该窗体单独建立一个小特征库,库内只有相应的几个按钮的特征,这样识别起来就会很准。
当库内特征较多时,不可避免会出现识别结果不止一个或需要的结果不排在第一位的现象,这时应该类似拼音输入法,让同音字或词组有个选择的机会。
有什么问题或要求请与我们联系:
信箱: hlgzs@21cn.net 或: hlgzs2@yahoo.com.cn 或:hlgzsnease@163.com
1.Rocord 〔录制〕(true 或 false) true 开始录音(控件在句结束后自动停止录音并识别)。
2.Establish 〔设置〕(true) 将当前的录音特征设置为对比特征。
3.Percentage 〔评分〕 获取当前对比结果的分数值(0 表示根本不吻合,有数值表示相似度的百分比。)
4.AutoRecord〔自动录音〕(true 或 false) true 则启动适时录音,源源不断的将录音的内容进行对比分析。Falae 则关闭自动录音。
5.Comp 〔对比特征〕从V9.0版本起,这个指令不再对比bin格式特征文件名,而是对比当前启用库的一个特征名称!可用44.UserLib(启用库名称)函数来选择库。
6.EstablishVoiceFileNameToComp 〔设声音文件为对比〕(WAV格式声音文件路径名称) 将一个任意格式的WAV文件分析后获取的声纹特征设置为对比内容。(注意:用声音文件来对比,如果还没有声音库,请用16位单声道8000采样的格式记录声音,这样可以省略格式转换的过程。)
7.CompVoiceFile 〔对比声音文件〕(WAV格式声音文件路径名称) 将一个任意格式的WAV文件(而不是录音内容)来对比。(可直接拖放Wav文件到本控件测试)
8.Noise 〔测噪音〕(true) 这个函数一般不用,因为控件会在录音结果的末尾段自动分析噪音值。
9.Volume 〔音量〕 获取当前录音结果的音量 (最大值为100)
10.Painting 〔绘图〕(true 或 false) true 则绘图,false 则不绘图。
11.RecordCharacterFileName 〔录音特征文件名〕(bin格式文件名) 获取当前录音结果的特征文件名全称。(特征文件的长度为2310字节{如果选择身份鉴别长度为2320字节},可以将这个文件用不同的名称命名保存到数据库中对应某个声音文件,便于单独或批量对比。通常这个文件名是控件包路径+"\总特征.bin")
12.CompCharacterFileName 〔对比特征文件名〕(bin格式文件名) 获取对比特征文件名的全称。(通常这个文件名为控件包路径+"\总对比特征.bin")
13.OpenF12 〔允许F12键录音〕(true 或 false) true 则允许F12键代替鼠标录音。(按下F12开始录音,放开F12结束录音。结束录音的同时分析声纹的相似度)
14.DiscriminateBody 〔鉴别身份〕 (true 或 false) 选择 true 则比较严格的校对个人的声纹,选择 false 则适合男女老幼的各种音色。
15.Reverse 〔反向〕(true 或 false) true 则反向,用于相位相反的麦克风接口。
16.Play (播放录音) (true) 播放现场录音的(学生)声音,或 CompVoiceFile 函数调入的声音文件。
17.Play_Comp (播放对比) (true) 播放用于对比的(老师)声音。
18.Re_Recognition 〔重新识别〕(true 或 false) true ,主要用于“反向”之后的不重录音而直接识别。
19.OCX_Path 〔控件路径〕(true 或 false) true ,读取控件所在的路径全称。
20.IsOver 事件,这个事件在分析完毕后自动启用。能调用OCX控件的用户在设计时双击本控件可以看到IsOver事件,然后在这个事件中插入分析完成后响应的代码。
21.Max_Record_Timer(没有响应的最大秒数) (1~60) 人工录音方式时启动录音后如果一直没有声音数据提交,将在这个值到后无条件停止录音提交数据进行分析(默认值是6秒)。
22.PeakValue (峰值校验 ) (true 或 false) true 则校验峰值误差(校验峰值误差有时会因为环境噪音太大导致声音串首尾定位不准而评分失败)。
23.ALC (自动电平 ) (true 或 false) true 则启用自动电平控制,能在声音较小时放大,声音太大时衰减到比较合理的电平。
24.WordNoumber (字段数) () 一个数值,显示词句切割出的段数(个别词会无法分割而连接在一起,所以这个值并不代表字数,可以理解为嘴唇开合的次数),用于将数据库分类,减少识别时搜索的范围。[注意:使用它分类要考虑有可能误差正负1个值;比如获得的字段数是3,应该在2、3、4字段库寻找特征文件]
25.Zero (允许零分 ) (true 或 false) true是默认值,在不吻合的因素太多时评分的值为零,但在老师与学生声纹误差较大时会也可能导致错评为零分的现象,此时应该禁用它。
26.Word_Max_Timer(t) t是提交词汇的反应秒数(停顿提交词汇的时间),范围必须在0.125秒~3秒之间。(默认值是0.66秒)
27.Auto_Clips (自动剪辑) (true 或 false) 默认为true;对应于控件的“自剪”复选框。true则录音按钮点击开始录音,当音量小到只有噪音时提交录音结果并分析。false则录音的开始与结束是手工控制,按下录音按钮[或使用Rocord_Start(true)函数]开始录音,放开录音按钮[或使用函数Rocord_End(true)]结束录音并提交分析。
28.Rocord_Start (开始录音) (true) 在“自剪”复选框(自动剪辑)不选时,启动录音。
29.Rocord_End (结束录音) (true) 在“自剪”复选框(自动剪辑)不选时,结束录音并分析。
30.Filters_Infrasound (滤除次声波) (true 或 false) false是默认值,滤除次声波的功能已经在句子剪裁器中使用,通常对比现成的WAV文件才使用它,滤除非语音成分的超低音部分,主要排除板载声卡的零点电平漂移或口风或风扇等带来的低频噪音。
31.FrequencyFitsTogetherRate (频率吻合率) 对应最上方的版块,频率曲线吻合的百分值。
32.PeakMatchingRate (峰值吻合率) 对应中间的版块,峰值曲线吻合的百分值。
33.FrequencyChartFitsTogetherRate (频谱吻合率) 在身份鉴别状态下,它显示频谱的吻合百分值。
34.ReasonDoesNotMatch (不吻合原因) 在评分失败后给出原因,鼠标点击分数可以看到这个提示。
35.CutRatio (切割比例) 头尾切割与最大值的倍数,值在10~50之间,这个值影响数据头尾定位的切割(默认值=25)
36.FrequencyComp(频率鉴别选择) 频率鉴别选择,它控制最上方的频率变化曲线版块是否参与分析, 可以用 FrequencyComp(True) 或 FrequencyComp(False) 指令控制它。
37.Save(保存特征) 保存特征,并给特征命名;可用 Save("") 启动输入板;或直接命名一个特征,如Save("1234")。
38.CompAll(批量对比(特征库的所有内容)) 用当前的录音与对比特征库内所有内容进行对比,可用 CompAll("") 指令启动批量对比。
39.AutoCompAll(自动批量对比) 分析完录音后自动启动批量对比,可用 AutoCompAll( true ) 启用它 用AutoCompAll( false ) 禁用它。
40.MaxNumber(有分数的结果个数) 有分数的结果个数,可用 MaxNumber(0) 读取它。
41.AnswerP(取第几个答案) 取第几个分数 ,可以用 AnswerP(1) 获得最高分 用 AnswerP(2) 获得第二高分,其他以此类推。
42.AnswerT(取第几个答案) 取第几个特征结果名称 ,可以用 AnswerT(1) 获得最高分的特征名称 用 AnswerT(2) 获得第二高分的特征名称,其他以此类推。
43.CreateLib(创建库) 创建一个新的特征库,可用指令 CreateLib("特征A")创建一个名称为"特征A"特征库(目录)。
44.UserLib(启用库) 启用一个特征库,可用指令 UserLib("常用库") 打开一个已存在的名称为"常用库"的特征库。
45.KillLib(删除库) 删除一个不要的库,可用指令 KillLib("特征A") 来删除名称为"特征A"的库。
46.KillFeatures(删除特征) 删除当前库的一个特征,可用KillFeatures("北京")删除当前启用的库中名称为"北京"的特征文件。
47.CharacterNumber(特征数量) 当前库特征的个数,可用指令CharacterNumber(0)读取。
48.CharacterName(特征名称) 当前库第几个个特征的名称,例如指令CharacterName(1)可读取当前库的第一个特征名称。(要注意它与“AnswerT(取第几个答案)”函数的区别)
49.LibName(库名称) 当前使用的库的名称,可用指令LibName("")读取。
50.LibPath(库的路径) 当前库的路径,特征文件就保存在这个路径中(不含Bin扩展名),对应的声音文件则在这个目录下的"\录音文件目录"子目录内。
51.SpectrumValue(频谱校验) As Integer 启用频谱曲线对比校验 ,可用指令SpectrumValue(true) 启用或SpectrumValue(false) 关闭它。
52.Color(控件色彩) 用RGB(x,x,x)值修改控件的色调。
53.NoiseThresholdSet(噪音阈值设定) 这个值通常在128~2048之间,当句子剪裁器总是不自动提交数据[直到没有响应的最大秒数到(6秒)才提交]时,需要调整这个值。
54.SensitivitySet(灵敏度设定) 录音的音量值,在1~100之间。
55.SetFeatureToComp(设特征为对比) 这个函数可以将当前使用库的某个特征变为对比内容。
56.Voice(语音选择) 默认为“true”语音类分析(允许30%的频率漂移) ,如设为“false”则进行较高进度的非语音类音频信号分析(只允许3%的频率漂移)。
打包本控件时必须附带的文件清单:
HLYYPF_9.OCX、HL_OcxJieMian.ocx、HongLeJvZiJianCaiQi.exe、HongLeJvZiJianCaiQi_B.exe、16_bit_mono_8000.wav、about.exe、Msvbvm60.dll、Vb6chs.dll、MCI32.OCX、stdole2.tlb、*.bin;最好将控件包目录下的所有dll文件都带上,OCX控件要记得用regsvr32 XXX.ocx 指令注册。
程序举例(VB6):
|
|
VB2008测试的源代码:在“C:\HLYYPF_AnZuanBao\VB2008测试2011_1_13”目录下,这里就省略了。
建议用一个空白的窗体来装载控件,当遇到有新函数的升级时,删除该窗体以及各个有关本控件的引用。重新加载新控件则可。
要获得良好的对比效果要注意:
A.避免在噪音太大的环境录音!当信噪比小于10倍,特征曲线将不准确。要想法让麦克风尽量与嘴巴靠近,但又要避免麦克风直接受到嘴巴气流的冲击,气流直接冲击麦克风会导致特征曲线残缺不齐!(通常用于语音识别的耳麦麦克风并不正对着嘴巴的正中央)
B.录音的起点与结束点必须包含整个句子(或单词)。
A.对应发行量不大的场合采用单机注册,(每台机器都要注册)费用是180元人民币/台电脑。
B.用于PC机的永久性注册费用为2.8万人民币(只需要注册一台开发主机)。
C.用于掌上电脑或学习机,由于代码无法加密(我们提供的是C++的DLL或原代码),费用定为150万人民币。
注册后的用户享受免费升级、以及有关《宏乐语音评分控件》的技术支持。
需要注册请汇款到下面的指定账号,将凭据(汇款交易号码)以及注册登记表发送到下面的信箱: 我们会返回您一个注册许可证。
作者账号:中国工商银行广州中荔支行 3602014001031174229 蔡泽宏
宏乐工作室信箱: hlgzs@21cn.net 或: hlgzs2@yahoo.com.cn 或: hlgzsnease@163.com
或:hlgzs2@sina.com 或:531923911@qq.com
问:控件能否在网站上使用?
答: A:如果要在服务器端分析,必须将客户端录好的Wav格式文件上传到服务器,然后在服务器启用《宏乐声纹对比控件》分析,得出结果,返回给用户(录音采样率为8K单声道)。在一个就是必须有权限在服务器端运行EXE文件或OCX控件(普通的虚拟主机不行)。
B:而在客户端运行本控件,则需要在客户端安装本控件以及进行相应的操控。
问: shibie.Rocord(true);
label1.Text = shibie.Percentage(100).ToString();
这段代码的使用正确吗?为什么识别出来都是0分。
答:执行录音指令后,控件正在操作,但下一行的指令立刻就来取分数,取得的将是前一次的值;通常在“IsOver”事件中获取分数,不然要给个延时等待再读取分数。
(设计时双击本控件可以看到IsOver事件,然后在这个事件中插入分析完成后响应的代码。)
其他软件作品: 宏乐音乐软件包 宏乐录音棚 恒音电子琴 恒乐交响曲 宏乐语音评分控件 宏乐辨音器
宏乐芝麻开门 中国方言 宏乐填表精灵 霓虹灯花式自动生成器 霓虹灯编程小工具
宏乐工作室欢迎您!您是第





个进入本页面,来自:美国的朋友