基于电视的虚拟卡拉OK系统及方法
技术领域
本申请属于卡拉OK技术领域,具体来说涉及一种基于电视的卡拉OK系统,以及该卡拉OK系统的工作方法。
背景技术
卡拉OK系统已经较为普及,但受限于家庭普通电视终端设备及信号采集播放链路的非专业性,现有技术尚不能在家庭环境中将用户自身声音和视频与歌曲原有内容混合并呈现出良好效果。一般会出现如下两个问题:
(1)用户体验差:由于电视终端设备视频播放器并不是为低延时的实时视频播放而设计,其在播放起始阶段需要缓冲一定量数据,造成电视屏幕上呈现的画面和用户实际动作有明显的延迟,用户观看自身动作时有明显的滞后感,影响使用体验。而为了满足电视卡拉OK这种对播放迟滞非常敏感的业务,通常的做法是重新设计电视终端设备视频播放器并尽可能减少上述缓冲数据大小、以减少播放迟滞,而这需要对家庭已有电视终端设备进行软件或硬件升级、代价巨大;
(2)合成文件不连续:在采集用户侧的歌唱音视频,并将该音视频与原唱歌曲文件进行切换播放和合成的过程中,由于存在采集及播放链路的延时,在电视终端设备进行播放的歌曲原始声音会在一定的延时后被采集到,而用户是根据伴奏音轨的声音进行歌唱的,这会导致合成点两侧的数据不连续,进而出现声音重叠或缺少的情况。而现有的歌唱声音同步合成方案,其工作原理是通过将歌曲伴奏音轨在用户端播放并只采集用户端歌唱人声,再将用户端歌唱人声和歌曲的伴奏音轨进行混合。该方案不涉及对采集播放链路整体延迟的调整,并且还存在以下问题:用户侧播放终端和采集终端须为同一设备,不适用于家庭存量普通电视终端设备及摄像装置;不能同时采集用户端歌唱人声和用户端伴奏音轨、因此用户必须屏蔽背景伴奏音频、造成无法手持话筒直接歌唱。
因此如何开发出一种新型的卡拉OK系统,能够克服以上技术问题,以进一步提升用户体验是本领域技术人员需要研究的方向。
发明内容
本发明实现一种基于电视的虚拟卡拉OK方法,能够实现自身歌唱声音、视频和歌曲内容混合呈现并精确合成,丰富用户体验感。
其技术方案如下:
一种基于电视的虚拟卡拉OK方法,其包括如下步骤:
步骤1:解析歌曲文件,抓取歌曲文件的特征值;所述特征值包括用于表征歌手演唱段落的时间特征值或字节位置特征值;
步骤2:采集用户端数据,所述用户端数据至少包括用户端视频;
步骤3:对步骤2所得用户端数据进行格式转化处理、形成电视终端设备可识别的数据格式;
步骤4:基于步骤1所得特征值选取歌曲原唱音频或伴奏音频作为播放音频,并选取歌曲视频或用户端视频作为播放视频;
步骤5:将步骤4所得播放音频和播放视频发送至电视终端设备;
步骤6:获取采集播放链路的延迟时间T、并对歌曲文件进行时长为T的延迟处理;
步骤7:基于步骤1所得特征值,将经步骤3格式转化处理后的用户端数据与经步骤6延迟处理后的歌曲文件进行合成处理,形成合成文件。
通过采用这种技术方案:对所述歌曲进行等同于播放采集链路延迟时长T的延迟处理后再基于特征值与采集的用户端音视频进行合成,克服了采集及播放链路的延时造成的合成点两侧数据不连续的问题,避免了声音重叠或缺少的情况,提升了合成文件精度和用户体验。
此处,所述歌曲文件包括歌曲视频,以及原唱音频、伴奏音频中的至少一种;所述原唱音频指包括歌手人声和伴奏音乐的歌曲音频,如歌曲原唱音轨;所述伴奏音频指只包括伴奏音乐的歌曲音频,如歌曲伴奏音轨;所述歌曲中歌手演唱段落指歌手连续演唱段落和/或歌手单句演唱歌词段落;所述歌曲中歌手演唱段落的时间特征值指歌手演唱段落的起始时间和/或歌手演唱段落的结束时间和/或两个相邻的歌手演唱段落之间的某个时间;所述歌曲中歌手演唱段落的字节位置特征值指歌手演唱段落的起始时间在歌曲文件中对应的数据位置和/或歌手演唱段落的结束时间在歌曲文件中对应的数据位置和/或歌曲文件中两个相邻的歌手演唱段落之间的某个数据位置。由于不同设备的制式问题,用户端数据往往不能在电视终端设备直接播放或播放效果不佳,为此,需要将用户端音频和/或用户端视频进行格式转化,以在电视终端设备获得较好的播放效果,所述格式转化包括保持初始状态/编码/封装/依序进行编码和封装四种情况。需要说明的是:采集的用户端数据至少包括用户端视频数据、还可以包括用户端音频数据;采集的用户端音频数据包括用户歌唱人声加伴奏音轨或用户歌唱人声;一首歌曲可以有多个歌手演唱段落,也可以只有一个歌手演唱段落,例如对于一位歌手独唱的歌曲、可以把整首歌当作一个歌手演唱段落。
优选的是,上述基于电视的虚拟卡拉OK方法中,步骤5包括:
步骤51:获取电视终端设备视频播放器缓冲区大小;
步骤52:发送数据填满电视终端设备视频播放器缓冲区;
步骤53:停止对电视终端设备发送数据;
步骤54:计算出电视终端设备视频播放器将缓冲区对应数据播放完毕所需要的时间t,并在时间t后将步骤4所得播放音频和播放视频发送至电视终端设备。
需要说明的是,上述步骤54中,也可以在比时间t略长或略短的时间后将播放音频和播放视频发送至电视终端设备,此时并不影响最终实现的技术效果。
通过采用这种技术方案:针对电视终端设备视频播放器在开始播放前需要缓冲一定量数据,造成电视屏幕画面和实际动作存在延迟的问题,通过主动耗尽电视终端设备视频播放器缓冲区内的数据的方式,减少了电视终端设备视频播放器缓冲区带来的播放迟滞问题,使用户在电视虚拟卡拉OK时,能够实时的看到自己的影像出现在电视上,提升了用户体验。
优选的,上述基于电视的虚拟卡拉OK方法中,步骤54包括:
步骤541:电视终端设备发送点播协议请求报文;
步骤542:对步骤541所述点播协议请求报文进行解析,获取其协议特征;
步骤543:将步骤542所得协议特征和预先存储的协议报文模板进行比对,确定相应的播放协议;
步骤544:基于步骤543所得播放协议,将步骤4所得播放音频和播放视频发送到电视终端设备。
之所以采用这种技术方案,在于目前家庭已有电视终端设备品类众多、规格不一,若重新进行视频传输协议适配,需要对电视终端设备进行软件或硬件升级,而电视终端设备一般都支持视频点播如运营商电视视频点播、互联网电视视频点播,本方案通过将电视卡拉OK系统和电视终端设备已经内置的视频点播协议自动匹配,解决了存量电视终端设备的视频传输协议兼容性问题。
优选的,上述基于电视的虚拟卡拉OK方法中:步骤2所述用户端数据还包括用户端音频数据;所述步骤6包括:
步骤61:将步骤4所得播放音频按照预设时间窗口进行分割采样,并将每个时间窗口的声音数据的时域转换为对应的频域,生成第一声音指纹信息;
步骤62:将用户端音频数据按照预设时间窗口进行分割采样,并将每个时间窗口的声音数据的时域转换为对应的频域,生成第二声音指纹信息;
步骤63:截取第一声音指纹信息中N个连续时间窗口对应的指纹信息,并记录其中第一个时间窗口所对应指纹信息的开始时间为T1;
步骤64:通过音频匹配算法,将步骤63中截取的指纹信息在第二声音指纹信息中进行匹配检索,获取相匹配的第二声音指纹信息内容;并记录第二声音指纹信息匹配内容的开始时间为T2;
步骤65:基于公式T=T2-T1,求得采集播放链路的延迟时间T;
步骤66:对歌曲文件进行时长为T的延迟处理。
通过采用这种技术方案:基于分割采样对播放音频和用户端音频进行比对,能够获得更高的匹配精度进而获得精确的采集链路延迟时间。
优选的,上述基于电视的虚拟卡拉OK方法中,步骤7包括:
步骤71:将歌曲视频或用户端视频分解成多个视频帧;
步骤72:按顺序取出首个视频帧作为当前视频帧;
步骤73:基于当前视频帧中物体边缘亮度的差异性,获取视频帧画面数据中各个物体的外形轮廓和位置;
步骤74:用第三方图片或视频素材叠加到指定的所述外形轮廓内;
步骤75:取出下一视频帧作为当前视频帧并跳转至步骤73;直至遍历步骤71所得所有视频帧。
通过采用这种技术方案:实现了将歌曲视频或所述用户端视频中的内容进行局部变换生成新的卡拉OK内容的技术效果,如把歌手的脸换成用户的脸。
为实现上述卡拉OK方法,本申请还公开了一种基于电视的虚拟卡拉OK系统,其包括:播放模块、采集模块、合成处理模块和电视终端设备;
所述采集模块包括数据采集单元、电视终端适配单元;所述数据采集单元用于采集用户端数据,并将该用户端数据输出至电视终端适配单元;所述用户端数据至少包括用户端视频;所述电视终端设备适配单元用于将用户端数据调整为电视终端设备可以识别的格式后,输出至合成处理模块;
所述合成处理模块包括解析单元、数据切换单元、数据合成单元和同步单元;所述解析单元用于解析歌曲、获取歌曲的特征值,所述特征值包括歌曲中歌手演唱段落的时间特征值或字节位置特征值;
所述数据切换单元用于读取特征值、基于该特征值选取原唱音频/伴奏音频取得播放音频;并选取歌曲视频/用户端视频取得播放视频;
所述播放模块用于将所述数据切换单元选取后所得播放音频和播放视频发送至电视终端设备进行播放;
所述同步单元用于获取采集播放链路的延迟时长T、并对所述歌曲进行时长等同于延迟时长T的延迟处理;所述数据合成单元用于读取特征值、基于该特征值将用户端数据与所述同步单元延迟处理后的歌曲文件进行合成处理。
优选的是,上述基于电视的虚拟卡拉OK系统中:所述播放模块还包括缓冲区欺骗单元,所述缓冲区欺骗单元通过耗尽电视终端设备视频播放器缓冲区内的数据、以减少电视终端设备视频播放器缓冲区造成的播放迟滞。
更优选的是,上述基于电视的虚拟卡拉OK系统中:所述播放模块包括点播匹配单元;所述点播匹配单元通过匹配电视终端已有视频点播协议、将所述播放音频和播放视频发送到电视终端设备。
更优选的是,上述基于电视的虚拟卡拉OK系统中:所述用户端数据还包括用户端音频;所述同步单元通过匹配所述播放音频和用户端音频求得采集及播放链路的延迟时间T。
更优选的是,上述基于电视的虚拟卡拉OK系统中:所述合成处理模块包括视频解析单元,所述视频解析单元用于在歌曲视频或所述用户端视频数据中解析出各物体的外形轮廓和位置,将第三方图片数据或视频素材数据叠加至指定的所述外形轮廓内。需要指出的是,上述技术方案的实现方式不是唯一限定的,可以用硬件或软件的方式实现,例如安装有软件的计算机硬件如X86架构的服务器或台式计算机,或者包含嵌入式软件的芯片如ARM架构的机顶盒芯片或手机芯片。
与现有技术相比,本发明的上述技术方案进一步取得了如下技术效果:
1、可以让使用者在卡拉OK的过程中,方便地实现自身歌唱声音、视频和歌曲内容混合呈现,提高卡拉OK演唱的趣味性;
2、可以基于家庭普通电视终端设备及非专业性信号采集播放链路环境下开展上述趣味性卡拉OK演唱业务,并获得良好的歌唱体验和内容合成效果;
3、可以实现对上述卡拉OK内容的录制和分享。
附图说明
以下结合附图与具体实施方式对本发明作进一步详细的说明:
图1为本发明的系统结构图;
图2为本发明与外设相结合的结构示意图;
图3为本发明的工作流程示意图;
图4为本发明中克服采集及播放链路延时的工作流程图;
图5为本发明中基于音频匹配算法精确获得采集及播放链路的延迟时间的工作流程图;
各附图标记与部件名称对应关系如下:
1、播放模块;2、采集模块;3、合成处理模块;4、歌唱信号接收装置;5、电视终端设备。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将基于附图对本发明的各实施方式进行详细的阐述。
如图1-5所示:
一种基于电视的虚拟卡拉OK系统,其包括:播放模块、采集模块、合成处理模块和电视终端设备;
所述采集模块包括数据采集单元、电视终端适配单元;所述数据采集单元用于采集用户端数据,并将该用户端数据输出至电视终端适配单元;所述用户端数据至少包括用户端视频;所述电视终端设备适配单元用于将用户端数据调整为电视终端设备可以识别的格式后,输出至合成处理模块;
所述合成处理模块包括解析单元、数据切换单元、数据合成单元和同步单元;所述解析单元用于解析歌曲、获取歌曲的特征值,所述特征值包括歌曲中歌手演唱段落的时间特征值或字节位置特征值;
所述数据切换单元用于读取特征值、基于该特征值选取原唱音频/伴奏音频取得播放音频;并选取歌曲视频/用户端视频取得播放视频;
所述播放模块用于将所述数据切换单元选取后所得播放音频和播放视频发送至电视终端设备进行播放;电视终端设备5包括电视机、机顶盒、卡拉OK一体机、大型显示设备如平板电脑、投影仪等。
所述同步单元用于获取采集播放链路的延迟时长T、并对所述歌曲进行时长等同于延迟时长T的延迟处理;所述数据合成单元用于读取特征值、基于该特征值将用户端数据与所述同步单元延迟处理后的歌曲文件进行合成处理。
本系统中所述播放模块1、采集模块2、合成处理模块3,可以安装在云端环境如服务器上,此时通过网络和歌唱信号接收装置4、电视终端设备5进行数据通信;所述播放模块1、采集模块2、合成处理模块3也可以安装在本地用户端环境中。
图2是本发明与外设配合后的结构图。
需要说明的是,外设不是本发明的必要组件,而是属于与本发明技术方案配合的组件。外设包括歌唱信号接收装置4,歌唱信号接收装置4指具有视频摄像、图像捕捉、声音采集等功能的装置,例如摄像头、话筒、电视机或手机内置的摄像装置或声音采集装置等。
实施例1:一个女性用户在播放一部男女明星双人对唱歌曲时,实现和男性明星的虚拟音视频对唱,并生成合成文件:
步骤1:解析歌曲文件、抓取歌曲文件的特征值;所述特征值包括用于表征歌手演唱段落的时间特征值或字节位置特征值;具体来说:包括男女歌手段落起始时间或起始时间对应音视频数据在歌曲文件中的字节位置,还可以包括对应的歌手信息;
步骤2:采集模块2采集女性用户的音频数据和视频数据;
步骤3:对步骤2所得用户端数据进行格式转化处理、形成电视终端设备可识别的数据格式;
步骤4:基于步骤1所得特征值选取歌曲原唱音频/伴奏音频作为播放音频,并选取歌曲视频/用户端视频作为播放视频;具体来说:合成处理模块3在女明星连续演唱段落的起始时间处,控制播放模块1从歌曲原唱音频切换到伴奏音频、歌曲视频切换到采集的用户端视频;女性用户跟随伴奏音频唱歌;合成处理模块3在男明星连续演唱段落的起始时间处,控制播放模块1从歌曲伴奏音轨切换到歌曲原唱音轨、采集的用户端视频切换到歌曲视频;重复上述步骤,直至歌曲播放结束;
步骤5:将步骤4所得播放音频和播放视频发送至电视终端设备;
步骤6:获取采集播放链路的延迟时间T、并对歌曲文件进行时长为T的延迟处理;
步骤7:基于步骤1所得特征值,将经步骤3格式转化处理后的用户端数据与经步骤6延迟处理后的歌曲文件进行合成处理,形成合成文件;具体来说:合成处理模块3基于歌曲中歌手连续演唱段落的特征值,将用户端音视频数据和歌曲进行合成处理,生成女性用户音视频和歌曲中男性明星对唱的新的歌曲文件。
进一步的,在对歌曲视频画面和用户端视频画面进行切换播放时,需要保证不同来源的视频画面可以平滑切换,避免出现卡顿、马赛克等影响用户体验。为此,需要保证切换前后的视频帧的PTS时间戳是连续的,实现方法为:获取待切换数据的视频帧率为z/秒,在切换点获取上一段视频数据的最后一帧PTS时间戳,值为t,将切换后的视频数据的每一帧的PTS时间戳调整为t+1/z、t+2/z、t+3/z …、t+n/z。
更进一步的,由于视频编解码存在帧顺序规定,所有非关键帧需要直接或间接依赖于对应关键帧解码,缺少解码所需的关键帧会导致画面切换时出现解码异常或花屏,影响使用体验,为此播放模块1解析待切换视频数据,定位关键帧并确保切换后的画面从关键帧开始。
通过上述方法,还可以实现场景例如:
1:女性用户在播放一部男女明星双人对唱歌曲时,仅将自己的视频数据发送到合成处理模块3,音频部分仍然使用女性明星的原唱声音,达到和男性明星的虚拟视频对唱效果,并生成新的歌曲文件;
2:用户在播放一部独唱歌曲时,将整首歌曲视为一个连续演唱段落,用自己的演唱画面替换原始歌曲的视频画面并和歌曲的原唱音频合成为新的歌曲文件。
实施例2:在实施例1中通过同步单元,实现用户端歌唱音视频和播放歌曲进行合成时,保证合成点两侧数据的精确连续:
假设某个歌曲文件中,歌手A对应的连续演唱段落的起始时间或起始时间对应音视频数据在歌曲文件中的字节位置为 Sn、结束时间或结束时间对应音视频数据在歌曲文件中的字节位置为En。
合成处理模块3首先读取歌曲中用于表征歌手连续演唱段落的特征值,通知播放模块1对对应段落的原唱音轨和伴奏音轨进行切换:例如遇到上述 Sn时切换到伴奏音轨,遇到上述En时切换到原唱音轨。合成处理模块3根据歌曲中歌手连续演唱段落的特征值,将采集的用户侧歌唱声音和歌曲进行合成处理生成新的歌曲文件。
在上述过程中:由于存在采集及播放链路延时,播放模块1在电视终端设备5进行播放的歌曲原始声音会在一定的延时后再被采集模块2接收并发送到合成处理模块3,如歌曲伴奏音轨的声音,而用户是根据伴奏音轨的声音进行歌唱的,这会导致合成点两侧的数据不是精确连续的,进而出现合成过程中声音重叠或者缺少的情况,严重降低用户体验。
如图4所示,采用如下过程克服采集及播放链路延时问题:合成处理模块3获取到播放歌曲原始声音的开始时间T1;合成处理模块3获取到采集模块发送的用户侧对应声音数据的开始时间T2;获取到播放歌曲原始声音和采集模块发送的对应声音的延迟时间T=T2-T1;合成处理模块3将歌曲延迟T时间后,和采集模块2发送的对应段落的用户侧数据进行合成;将视频时间戳和音频时间戳进行同步记录,确保声音和画面的同步。
除上述基于算法的方式以外,也可以根据播放网络传输时间+电视终端设备视频播放器缓冲时间+采集网络传输时间计算得到采集及播放链路的延迟时间。
具体的:合成处理模块3在提取视频数据和音频数据时,会将视频时间戳和音频时间戳进行同步记录,以确保声音和画面的同步,因此,合成点两侧音频数据的精确连续也保证了视频数据的精确连续。进一步的,在将用户侧歌唱声音和歌曲进行合成时,合成处理模块3会比较歌曲声音和用户侧歌唱声音的音量大小,并将较小的声音部分进行增益调整,使得2种声音都能有近似相同的音量,以确保最终合成的歌曲不会出现声音忽高忽低的情况。
如图5所示:步骤S6中通过音频匹配算法,基于如下步骤精确获得采集及播放链路的延迟时间:
步骤61:将播放音频按照预设时间窗口进行分割采样,并将每个时间窗口的声音数据的时域转换为对应的频域,生成第一声音指纹信息;
步骤62:将用户端音频数据按照预设时间窗口进行分割采样,并将每个时间窗口的声音数据的时域转换为对应的频域,生成第二声音指纹信息;
步骤63:截取第一声音指纹信息中N个连续时间窗口对应的指纹信息,并记录其中第一个时间窗口所对应指纹信息的开始时间为T1;
步骤64:通过Shazam、dnn-based等音频匹配算法,将步骤3中截取的指纹信息在第二声音指纹信息中进行匹配检索,获取相匹配的第二声音指纹信息内容;并记录第二声音指纹信息匹配内容的开始时间为T2;
步骤65:基于公式T=T2-T1,求得采集播放链路的延迟时间T;
步骤66:对歌曲文件进行时长为T的延迟处理。
需要说明的是,上述步骤63中N的具体取值一般根据经验值设定,以能确保通过时间窗口数据采样实现所述播放音频和所述用户端音频数据中相应的数据匹配为宜。
实施例3:在实施例1中对播放歌曲视频进行分析并识别出和人体有关的外形数据、位置数据,并据此叠加其它图片或视频素材到歌曲视频指定位置,生成虚拟化的卡拉OK内容的步骤如下:
步骤71:将歌曲视频或用户端视频分解成多个视频帧;
步骤72:按顺序取出首个视频帧作为当前视频帧;
步骤73:基于当前视频帧中物体边缘亮度的差异性,获取视频帧画面数据中各个物体的外形轮廓和位置;在本例中,获取的是视频帧画面数据中人体的外形轮廓和位置;
步骤74:用第三方图片或视频素材叠加到指定的所述外形轮廓内;
步骤75:取出下一视频帧作为当前视频帧并跳转至步骤73;直至遍历步骤71所得所有视频帧。
实施例4:在实施例1中基于电视终端设备已经内置的视频点播协议开展卡拉OK业务并减少播放迟滞,其包括如下步骤:
步骤51:播放模块1获取电视终端设备视频播放器缓冲区大小;
步骤52:播放模块1发送对应大小的数据填充电视终端设备视频播放器缓冲区直至填满;
步骤53:播放模块1停止对电视终端设备发送数据;
步骤541:电视终端设备5在请求视频点播内容时,发送其终端的点播协议请求报文;
步骤542:播放模块1解析步骤541所得点播协议请求报文,获取其协议特征值;
步骤543:播放模块1将步骤542所得协议特征和预先存储的协议报文模板进行比对,确定相应的播放协议;
步骤544:基于步骤543所得播放协议,将步骤4所得播放音频和播放视频发送到电视终端设备:具体的,播放模块1计算出电视终端设备视频播放器将缓冲区对应数据播放完毕所需要的时间t,并在时间t后基于步骤3所得播放协议,将所述播放音频和所述播放视频发送到电视终端设备。
本方案不受上述实施例的限制,上述实施例和说明书中描述的只是说明本方案的原理,在不脱离本方案精神和范围的前提下,本方案还会有各种变化和改进,这些变化和改进都落入要求保护的本方案范围内。本方案要求保护范围由所附的权利要求书及其等效物界定。