System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及音频处理,具体涉及一种基于unity录制音频的方法及系统。
技术介绍
1、unity是实时3d互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助unity将创意变成现实。unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2d和3d内容,支持平台包括手机、平板电脑、pc、游戏主机、增强现实和虚拟现实设备。
2、使用3d引擎unity进行开发时,可以使用microphone(麦克风组件)类调用麦克风,通过其麦克风调用开始【microphone.start(string devicename,bool loop,intlengthsec,int frequency)】和麦克风调用结束【microphone.end(string devicename)】函数控制音频录制的开启和结束。但microphone类有一个弊端,就是在开始调用microphone.start(string devicename,bool loop,int lengthsec,int frequency)时,必须传入一个固定长度参数,即在录音开始时就必须固定此段录音时长。若用户录音时间过短,则该音频的无效时长增加,若用户录音时间过长,则该音频的存储时间不足,影响用户的体验感。
技术实现思路
1、针对现有技术的不足,本专利技术的目的在于提供一种基于unity录制音频的方法及系统,旨在解决现有技术中基于unity录制音频时,需要自主
2、本专利技术的第一方面在于提供一种基于unity录制音频的方法,所述方法包括:
3、通过unity引擎的麦克风组件获取设备的麦克风的状态,并通过所述麦克风组件调用所述麦克风;
4、通过所述麦克风组件对所述麦克风设置录音参数,启动所述麦克风录制音频,得到音频数据;
5、通过unity引擎的音频剪辑组件创建第一浮点数组和第二浮点数组,将所述音频数据保存于所述第一浮点数组中,并对所述第一浮点数组进行预处理,得到有效音频数据,保存于所述第二浮点数组中;
6、通过unity引擎的音频剪辑组件创建音频片段,将保存于所述第二浮点数组中的有效音频数据赋值至音频片段中,得到录制的音频资源。
7、与现有技术相比,本专利技术的有益效果在于:通过本专利技术提供的基于unity录制音频的方法,能有效地延长音频时长,提高用户体验感,具体为,通过所述麦克风组件对所述麦克风设置录音参数,启动所述麦克风录制音频,得到音频数据,所述录音参数包括麦克风的名称参数、时长参数,所述时长参数设置为无限时长,以防止该段时长固定后,用户使用过程中的录音时长不足,提高用户体验感,再通过第一浮点组数获取全部音频数据,对所述第一浮点数组进行预处理,得到有效音频数据,保存于所述第二浮点数组中,能有效地截取有效音频数据,去除不必要的噪音,使得有效音频数据更加流畅和自然,提取有用的信息,优化有效音频数据,提高语音识别的准确性和专业性,进一步提高用户的体验感,从而解决了现有技术中基于unity录制音频时,需要自主设置固定时长,影响用户体验感的技术问题。
8、根据上述技术方案的一方面,通过unity引擎的麦克风组件获取设备的麦克风的状态,并通过所述麦克风组件调用所述麦克风的步骤,具体包括:
9、通过unity引擎的麦克风组件获取设备的麦克风的数组长度,判断所述数组长度是否大于0;
10、若是,则所述设备中存在可使用的麦克风,调用所述麦克风;
11、若否,则所述设备中不存在可使用的麦克风,无需继续执行后续步骤。
12、根据上述技术方案的一方面,所述录音参数包括麦克风的名称参数、时长参数,所述时长参数设置为无限时长,所述音频数据包括至少一样本数据以及所述样本数据的通道数。
13、根据上述技术方案的一方面,将所述音频数据保存于所述第一浮点数组中的步骤,具体包括:
14、通过unity引擎的音频剪辑组件创建第一浮点数组,所述第一浮点数组的长度等于所述音频数据的样本数据数乘以通道数;
15、将所述音频数据保存于所述第一浮点数组中。
16、根据上述技术方案的一方面,并对所述第一浮点数组进行预处理,得到有效音频数据,保存于所述第二浮点数组中的步骤,具体包括:
17、对所述第一浮点数组进行预处理,获取音频数据的开始位置和结束位置;
18、截取开始位置和结束位置之间的音频数据,得到有效音频数据;
19、使用循环语法操作,将所述第一浮点数组的所述有效音频数据依次赋值于所述第二浮点数组中。
20、根据上述技术方案的一方面,所述第二浮点组数的长度等于有效音频数据的样本数据数乘以通道数。
21、根据上述技术方案的一方面,所述音频片段的配置包括片段名称、片段采样率、片段通道数、片段压缩程度,所述片段通道数与所述有效音频的通道数一致。
22、本专利技术的第二方面在于提供了一种基于unity录制音频的系统,所述基于unity录制音频的系统用于实现上述基于unity录制音频的方法,所述系统包括:
23、麦克风调用模块,用于通过unity引擎的麦克风组件获取设备的麦克风的状态,并通过所述麦克风组件调用所述麦克风;
24、音频录制模块,用于通过所述麦克风组件对所述麦克风设置录音参数,启动所述麦克风录制音频,得到音频数据;
25、音频处理模块,用于通过unity引擎的音频剪辑组件创建第一浮点数组和第二浮点数组,将所述音频数据保存于所述第一浮点数组中,并对所述第一浮点数组进行预处理,得到有效音频数据,保存于所述第二浮点数组中;
26、音频保存模块,用于通过unity引擎的音频剪辑组件创建音频片段,将保存于所述第二浮点数组中的有效音频数据赋值至音频片段中,得到录制的音频资源。
27、本专利技术的第三方面在于提供了一种可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述基于unity录制音频的方法的步骤。
28、本专利技术的第四方面在于提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于unity录制音频的方法的步骤。
本文档来自技高网...【技术保护点】
1.一种基于Unity录制音频的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于Unity录制音频的方法,其特征在于,通过Unity引擎的麦克风组件获取设备的麦克风的状态,并通过所述麦克风组件调用所述麦克风的步骤,具体包括:
3.根据权利要求1所述的基于Unity录制音频的方法,其特征在于,所述录音参数包括麦克风的名称参数、时长参数,所述时长参数设置为无限时长,所述音频数据包括至少一样本数据以及所述样本数据的通道数。
4.根据权利要求3所述的基于Unity录制音频的方法,其特征在于,将所述音频数据保存于所述第一浮点数组中的步骤,具体包括:
5.根据权利要求4所述的基于Unity录制音频的方法,其特征在于,并对所述第一浮点数组进行预处理,得到有效音频数据,保存于所述第二浮点数组中的步骤,具体包括:
6.根据权利要求5所述的基于Unity录制音频的方法,其特征在于,所述第二浮点组数的长度等于有效音频数据的样本数据数乘以通道数。
7.根据权利要求1所述的基于Unity录制音频的方法,其特征在于,所述音
8.一种基于Unity录制音频的系统,其特征在于,所述系统用于实现权利要求1至7中任意一项所述的基于Unity录制音频的方法,所述系统包括:
9.一种可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任意一项所述的基于Unity录制音频的方法的步骤。
10.一种电子设备,其特征在于,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7中任意一项所述的基于Unity录制音频的方法的步骤。
...【技术特征摘要】
1.一种基于unity录制音频的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于unity录制音频的方法,其特征在于,通过unity引擎的麦克风组件获取设备的麦克风的状态,并通过所述麦克风组件调用所述麦克风的步骤,具体包括:
3.根据权利要求1所述的基于unity录制音频的方法,其特征在于,所述录音参数包括麦克风的名称参数、时长参数,所述时长参数设置为无限时长,所述音频数据包括至少一样本数据以及所述样本数据的通道数。
4.根据权利要求3所述的基于unity录制音频的方法,其特征在于,将所述音频数据保存于所述第一浮点数组中的步骤,具体包括:
5.根据权利要求4所述的基于unity录制音频的方法,其特征在于,并对所述第一浮点数组进行预处理,得到有效音频数据,保存于所述第二浮点数组中的步骤,具体包括:
6.根据权利要求5所述的基于uni...
【专利技术属性】
技术研发人员:王晓敏,张琨,
申请(专利权)人:江西格如灵科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。