本发明涉及音频录制技术领域,具体说是一种k歌录音的方法。
背景技术:
ktv的源头来自于日本。ktv是karaoktv的缩写。karaok是个日英文的杂名,kara是日文“空”的意思,ok是英文“无人伴奏乐队”的缩写,到中国就演变成了“卡拉ok”。现在则将其进一步简称为k歌。
为了满足大众对k歌的需求,越来越多的k歌软件被发布出来,供用户在便携设备(例如:手机,平板电脑等)中使用,其本质是免费的k歌录音软件,借助于它就可以在便携设备上k歌(台式机等设备也同样支持)。把用户自己的歌声融入在k歌软件提供的伴奏中,之后可以用软件进行免费的卡拉音频效果处理和ok音频编辑,比如背景噪音处理、音频数据编辑、混音设置等。
ios系统中,原生的开发框架集成了丰富的视频/音频处理功能,可以用于k歌录音,但是,具体的音频处理步骤没有统一的规划,导致k歌录音中合成、配音、混音处理较为混乱,不利于k歌录音算法的优化,如果要扩充新功能(例如k歌打分),往往需要对源代码大幅改动,不利于开发效率的提高。
技术实现要素:
针对现有技术中存在的缺陷,本发明的目的在于提供一种k歌录音的方法,统一k歌录音算法,可以同时处理原唱、伴唱、伴奏数据,实现边放音边录音边播放,合理安排回调处理,音频处理效果好,易于开发、调试、维护。
为达到以上目的,本发明采取的技术方案是:
一种k歌录音的方法,其特征在于,包括如下步骤:
设定混音数据源mixernode,用于形成伴奏音乐,
设定io数据源ionode,用于获取录音硬件采集到的k歌声音,
将伴奏音乐输出给io数据源ionode,
io数据源ionode将k歌声音和伴奏音乐混音后形成k歌音乐,
io数据源ionode输出k歌音乐完成k歌播放处理,
io数据源ionode输出k歌声音形成输入数据流,
对输入数据流进行输入回调,形成k歌相关数据,
k歌相关数据作为混音数据源mixernode的输入信息之一,供相应功能模块使用。
在上述技术方案的基础上,所述形成k歌相关数据包括以下任意之一或全部:
形成k歌打分数据,用于对k歌即时打分,
形成k歌计时数据,用于统计k歌时长,
形成k歌字幕调用数据,用于调用并显示歌曲字幕,
形成k歌互动数据,用于多用户间k歌实时互动。
在上述技术方案的基础上,混音数据源mixernode,获取伴奏数据源acomplaynote的伴奏音乐,
获取原唱数据源origionplaynode的原唱声音,
获取k歌相关数据,
混音数据源mixernode,按以下几种方式之一进行输出:
仅输出伴奏音乐,
输出伴奏音乐+k歌相关数据,
输出伴奏音乐+原唱声音,
输出伴奏音乐+原唱声音+k歌相关数据。
在上述技术方案的基础上,录音开始后先初始化录音环境,使用管理类augraph录音同时播放,
在管理类augraph中,添加混音数据源mixernode、io数据源ionode、伴奏数据源acomplaynote和原唱数据源origionplaynode,
分别形成混音单元mixerunit、io单元iounit、伴奏单元acomplayunit和原唱单元origionplayunit。
在上述技术方案的基础上,混音单元mixerunit中能设定是否开启混音器输出,预设混音器输入elementcoun值为3,预设录音分片最大音频帧数maximumframesperslice值为4096,预设其bus0、bus1和bus2三路输入的输入样式,预设输入回调接口,预设输出的输出样式,
io单元iounit中能设定是否开启录音硬件,即是否连接录音硬件将其作为输入设备,预设采集录音硬件的一路输入bus1的输出样式,预设输出的输出样式,预设输入数据流bus0的输入格式,
伴奏单元acomplayunit中预设伴奏数据的输出样式,
原唱单元origionplayunit中预设原唱数据的输出样式。
在上述技术方案的基础上,伴奏数据源acomplaynote通过audiofileopenurl打开指定的伴奏文件,
伴奏单元acomplayunit对伴奏文件设定以下播放参数:
scheduledfileregion,设定文件存档属性,
scheduledfileprime,设定文件初始化参数
schedulestarttime,设定文件开始时间,
伴奏单元acomplayunit设置文件输出样式pcm。
本发明所述的k歌录音的方法,统一k歌录音算法,可以同时处理原唱、伴唱、伴奏数据,实现边放音边录音边播放,合理安排回调处理,音频处理效果好,易于开发、调试、维护。
放音指播放伴奏音乐,
录音指录制k歌声音,
播放指将k歌声音和伴奏音乐混音后形成k歌音乐并播放。
附图说明
本发明有如下附图:
图1本发明的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的k歌录音的方法,包括如下步骤:
设定混音数据源mixernode,用于形成伴奏音乐,
设定io数据源ionode,用于获取录音硬件采集到的k歌声音,
将伴奏音乐输出给io数据源ionode,
io数据源ionode将k歌声音和伴奏音乐混音后形成k歌音乐,
io数据源ionode输出k歌音乐完成k歌播放处理,
io数据源ionode输出k歌声音形成输入数据流,
对输入数据流进行输入回调,形成k歌相关数据,
k歌相关数据作为混音数据源mixernode的输入信息之一,供相应功能模块使用。
在上述技术方案的基础上,所述形成k歌相关数据包括以下任意之一或全部:
形成k歌打分数据,用于对k歌即时打分,
形成k歌计时数据,用于统计k歌时长,
形成k歌字幕调用数据,用于调用并显示歌曲字幕,
形成k歌互动数据,用于多用户间k歌实时互动。
在上述技术方案的基础上,混音数据源mixernode,获取伴奏数据源acomplaynote的伴奏音乐,
获取原唱数据源origionplaynode的原唱声音,
获取k歌相关数据,
混音数据源mixernode,按以下几种方式之一进行输出:
仅输出伴奏音乐,
输出伴奏音乐+k歌相关数据,
输出伴奏音乐+原唱声音,
输出伴奏音乐+原唱声音+k歌相关数据。
在上述技术方案的基础上,录音开始后先初始化录音环境,使用管理类augraph录音同时播放,
在管理类augraph中,添加混音数据源mixernode、io数据源ionode、伴奏数据源acomplaynote和原唱数据源origionplaynode,
分别形成混音单元mixerunit、io单元iounit、伴奏单元acomplayunit和原唱单元origionplayunit。
在上述技术方案的基础上,混音单元mixerunit中能设定是否开启混音器输出,预设混音器输入elementcoun值为3,预设录音分片最大音频帧数maximumframesperslice值为4096,预设其bus0、bus1和bus2三路输入的输入样式,预设输入回调接口,预设输出的输出样式,
io单元iounit中能设定是否开启录音硬件,即是否连接录音硬件将其作为输入设备,预设采集录音硬件的一路输入bus1的输出样式,预设输出的输出样式,预设输入数据流bus0的输入格式,
伴奏单元acomplayunit中预设伴奏数据的输出样式,
原唱单元origionplayunit中预设原唱数据的输出样式。
在上述技术方案的基础上,伴奏数据源acomplaynote通过audiofileopenurl打开指定的伴奏文件,
伴奏单元acomplayunit对伴奏文件设定以下播放参数:
scheduledfileregion,设定文件存档属性,
scheduledfileprime,设定文件初始化参数
schedulestarttime,设定文件开始时间,
伴奏单元acomplayunit设置文件输出样式pcm。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。