CN102982832B - 一种在线卡拉ok伴奏、人声与字幕的同步方法 - Google Patents
一种在线卡拉ok伴奏、人声与字幕的同步方法 Download PDFInfo
- Publication number
- CN102982832B CN102982832B CN201210484133.1A CN201210484133A CN102982832B CN 102982832 B CN102982832 B CN 102982832B CN 201210484133 A CN201210484133 A CN 201210484133A CN 102982832 B CN102982832 B CN 102982832B
- Authority
- CN
- China
- Prior art keywords
- data
- play
- accompaniment
- singer
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
一种在线卡拉OK伴奏、人声与字幕的同步方法,在演唱者端进行人声、伴奏混音,加上播放的时间戳编码后发送到流媒体服务器;在收听者端,流媒体播放器线程启动后,首先从服务器端加载歌词,然后接收流媒体数据,采用接收到媒体数据量的大小来同步字幕的播放,从而实现收听者端与演唱者端卡拉OK伴奏、人声与字幕的同步。本发明减少网络带宽的实时传输,在接收者端多媒体播放线程启动前,从服务器上下载完字幕;同时降低CPU的计算消耗,在演唱者端将伴奏与人声进行混音、加上播放时间压缩编码形成多媒体数据块,接收者端进行解码播放,且按播放数据量的大小进行字幕同步。
Description
技术领域
本发明涉及在线卡拉OK、多媒体技术领域,公开了一种互联网在线卡拉OK模式下,卡拉OK伴奏、人声、字幕的同步方法。
背景技术
卡拉0K是人们休闲娱乐最重要的一种方式,也是线下社交中的保留节目。计算机网络通信作为一种先进的通信方式,一直在改变着人们的生活。而建立在计算机网络通信基础上的在线卡拉OK,凭借其自身方便、低成本和互动性强等特点,日益受到人们的关注和认同。利用本发明,可以实现网络KTV,让天涯海角的朋友通过网络,可以聚在一起进行K歌,较好地增强了互动,节约交流所需的时间和成本。
在线卡拉OK系统中,伴奏、人声、字幕的同步技术是一项极为产键的技术,它直接影响到用户体验的好坏。现在的在线卡拉OK伴奏、人声、字幕同步方法一般采用传输三路多媒体数据,在每路数据中增加演唱者端演唱的时间,通过流媒体发送到收听者端,收听者端启动多媒体播放器,按照演唱者端演唱的时间,分别播放。
在互联网高速发展的今天,从演唱者端同时传输三路数据到收听者端,都能稳定、及时到达。随着移动终端,如智能手机、PDA等便携电子设备的出现,人们也期望该类设备也能随时随地参与在线卡拉OK带来的完美体验。一方面受运营商网络的影响,移动互联网的带宽远远不及传统互联网的带宽,在多路数据传输时,经常造成数据延迟,要么只听到伴奏,要么只听到人声,要么只看到字幕渐进。另一方面移动终端等小型设备的CPU性能无法与PC比拟,采用多路数据同时播放及相互同步,对CPU的计算能力要求高,会造成卡顿现象,用户体验效果非常差。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种在线卡拉OK伴奏、人声与字幕的同步方法,减少网络带宽的实时传输,在接收者端多媒体播放线程启动前,从服务器上下载完字幕;同时降低CPU的计算消耗,在演唱者端将伴奏与人声进行混音、加上播放时间压缩编码形成多媒体数据块,接收者端进行解码播放,且按播放数据量的大小进行字幕同步。
本发明技术解决方案:一种在线卡拉OK伴奏、人声与字幕的同步方法,实现步骤如下;
(1)在演唱者端,启动混音线程,定义两个缓冲区MusicBuffer、SoundBuffer用于缓存伴奏和用户录音数据,当两个缓冲区中的数据到达指定的量MaxBuffer时,记录当前的播放时间PlayedTime,对录音数据先进行AGC处理然后再与伴奏进行混音处理,混音数据的时长为单位时间Unit1Time的整数倍,混音的数据长度ProcessTime为:
ProcessTime=Int(Min(MusicBuffer,SoundBuffer)/Unit1Time)*Unit1Time
将混音后的数据进行MP3编码,把编码后的数据与已播放的时间戳TimeStamp一起通过AMF数据格式封装,当演唱者端一首歌曲演唱结束时,达到设定的TimeStamp的结束阈值(-1),TimeStamp是个整数值,单位是毫秒(ms),用于说明演唱者端当前演唱的时间,也就是伴奏已经播放了的时间,当收听者端接收到这个时间,就会以这个时间为准来同步进行播放声音;采用RTMP协议发送到流媒体服务器,由流媒媒体服务器广播给各个收听者端,分别将未混音完成的伴奏数据和录音数据重新加入MusicBuffer、SoundBuffer缓冲区,按步骤(1)进行循环处理;
(2)在接收者端,定义一个播放缓冲区PlayingBuffer用于接收演唱者端发送过来的数据,启动数据接收线程、音频播放线程、字幕渐近线程;接收线程将接收到的数据解码成音频数据及时间戳TimeStamp;播放线程开始准备播放,依据接收到的时间戳与缓冲数据量实时计算出当前播放器相对应的演唱者端的时间PlayTime,计算公式如下:
PlayTime=TimeStamp-播放缓冲区PlayingBuffer剩余的数据时长;
字幕渐近线程依据计算出的播放时间进行字幕渐近,所述进行字幕渐近方法如下:
a.根据当前播放器相对应的演唱者端的时间PlayTime,定位到当前播放的字,并提取出当前字的开始时间Word.endtime和结束时间Word.EndTime;
b.进行字幕的渐变,处理的长度=(PlayTime-Word.StartTime)*(字的宽度像素)/(Word.EndTime-Word.StartTime);
c.每隔单位时间Unit2Time,循环执行步骤a、b;
d.当当前播放器相对应的演唱者端的时间PlayTime的值为设定的TimeStamp的结束阈值(-1)时,表明演唱已结束,并进行结果的展示。
本发明与现有技术相比的优点在于:
(1)现有在线卡拉OK技术都是在采用flash客户端+流媒体服务的方式来实现,将伴奏、人声、字幕、同步时间戳通过各个通道进行广播,开发实现起来比较便捷,但也造成以下问题:
由于终端设备性能差别较大,flash客户端的时间戳因性能问题会自动调整,就会产生演唱者端实际播放的时间与录音数据量的偏差,因而造成在收听者端,伴奏、人声、字幕三者不同步的现象;
由于网络的延迟,流媒体服务的各个通道上的数据到达的时间也难以保证一致,这样就会出现像伴奏先到,人声迟一点才到收听者端,也会造成在收听者端,伴奏、人声、字幕三者不同步的现象。
(2)本发明采用在演唱者端就将伴奏、人声混音完成,在接收者端启动播放线程时先从流媒体服务器上下载完成歌词,当接收到一定量的数据后才开始播放,有效保证了在收听者端,伴奏、人声、字幕三者同步,增强了用户体验。
附图说明
图1为本发明方法实现的系统的组成框图;
图2为本发明中在演唱者端将伴奏、人声进行混音编码的实现流程图;
图3为本发明中在接收者端进行音频解码播放、字幕同步的实现流程图。
具体实施方式
下面结合附图及实施例对本发明进一步详细说明。
一、系统整体架构流程图如下:
在图1中可以看到,实现本发明在线卡拉OK伴奏、人声、字幕的同步方法的主要流程为:
1、在演唱者端进行人声、伴奏混音,加上播放的时间戳编码后发送到流媒体服务器。
2、在收听者端,在流媒体播放器线程启动后,就从服务器端加载歌词,然后接收流媒体数据,采用接收到的数据量大小来同步字幕的播放。
二、本发明实现详细说明
1、图2所示,考虑到在实际的录音过程中存在着网络状况不佳,容易导致录音数据与背景音之间存在不同步,需要在混音过程中消除。在实际的唱歌过程中人声会在每一句唱词结束时都会有一定的停顿,为了保证音乐的连续性,使用伴奏作为基准在每句结束处进行声音同步处理。详细的同步逻辑如下:
(1)定义2个缓冲区MusicBuffer、SoundBuffer用于缓存伴奏和用户录音数据,当混音线程开启后实时向缓冲区中添加数据。
(2)当缓冲区中的数据到达指定的量MaxBufferTime时,记录当前的播放时间PlayTime,对录音数据先进行AGC处理然后再与背景音进行混音处理,处理数据的时长要为单位时间UnitTime的整数倍,故处理的数据时长为Int(Min(MusicBuffer,SoundBuffer)/UnitTime)*UnitTime剩余的数据重新加入缓冲区,等待循环处理。
(3)当到达一句结尾时,以伴奏数据为基准进行对齐,当录音数据比伴奏多时,将录音数据多的时候截取,少的时候补零,从而使数据对齐。
(4)将混音处理好的数据进行MP3编码,把编码后的数据与已播放的时间戳TimeStamp一起通过AMF数据格式封装,注:时间戳TimeStamp精确到毫秒,当演唱者端一首歌曲演唱结束时,TimeStamp为-1。采用RTMP协议发送到流媒体服务器。
2、如图3所示,收听者端收到流媒体数据后,启动多媒体播放线程和字幕渐近线程,多媒体播放线程进行解码播放,字幕渐近线程根据播放的数据量及时间戳,进行字幕同步。详细的同步逻辑如下:
(1)数据接收线程在获取到数据后将数据交由数据解码线程进行数据解析,得到音频数据及时间戳;
(2)将音频数据块放入缓冲队列PlayingBuffer,当缓存的音频数据达到一定量时,播放线程开始进行播放;
(3)在播放时,依据接收到的时间戳TimeStamp与缓冲数据量实时计算出当前播放器相对应的演唱者端的时间PlayTime,计算公式如下:
PlayTime=TimeStamp-播放缓冲区PlayingBuffer剩余的数据时长;
(4)字幕渐近线程依据计算出的播放时间进行字幕渐近,字幕渐近方法如下:
a.根据当前播放器相对应的演唱者端的时间PlayTime,定位到当前播放的字,并提取出当前字的开始时间Word.endtime和结束时间Word.EndTime。
b.进行字幕的渐变,处理的长度=(PlayTime-Word.StartTime)*(字的宽度像素)/(Word.EndTime-Word.StartTime)
c.每隔50毫秒,循环执行步骤a、b。
d.当当前播放器相对应的演唱者端的时间PlayTime的值为-1时,表明演唱已结束,并进行结果的展示。
本发明未详细阐述部分属于本领域公知技术;且以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种在线卡拉OK伴奏、人声与字幕的同步方法,其特征在于实现如下步骤;
(1)在演唱者端,启动混音线程,定义两个缓冲区MusicBuffer、SoundBuffer用于缓存伴奏和用户录音数据,当两个缓冲区中的数据到达指定的量MaxBuffer时,记录当前的播放时间PlayedTime,对录音数据先进行AGC处理然后再与伴奏进行混音处理,混音数据的时长为单位时间Unit1Time的整数倍,混音的数据长度ProcessTime为:
ProcessTime=Int(Min(MusicBuffer,SoundBuffer)/Unit1Time)*Unit1Time
将混音后的数据进行MP3编码,把编码后的数据与已播放的时间戳TimeStamp一起通过AMF数据格式封装,当演唱者端一首歌曲演唱结束时,达到设定的TimeStamp的结束阈值,采用RTMP协议发送到流媒体服务器,由流媒媒体服务器广播给各个收听者端,分别将未混音完成的伴奏数据和录音数据重新加入MusicBuffer、SoundBuffer缓冲区,按步骤(1)进行循环处理;
(2)在接收者端,定义一个播放缓冲区PlayingBuffer用于接收演唱者端发送过来的数据,启动数据接收线程、音频播放线程、字幕渐近线程;接收线程将接收到的数据解码成音频数据及时间戳TimeStamp;播放线程开始准备播放,依据接收到的时间戳与缓冲数据量实时计算出当前播放器相对应的演唱者端的时间PlayTime,计算公式如下:
PlayTime=TimeStamp-播放缓冲区PlayingBuffer剩余的数据时长;
字幕渐近线程依据计算出的播放时间进行字幕渐近,所述进行字幕渐近方法如下:
a.根据当前播放器相对应的演唱者端的时间PlayTime,定位到当前播放的字,并提取出当前字的开始时间Word.StartTime和结束时间Word.EndTime;
b.进行字幕的渐变,处理的长度=(PlayTime-Word.StartTime)*(字的宽度像素)/(Word.EndTime-Word.StartTime);
c.每隔单位时间Unit2Time,循环执行步骤a、b;
d.当当前播放器相对应的演唱者端的时间PlayTime的值为设定的TimeStamp的结束阈值时,表明演唱已结束,并进行结果的展示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210484133.1A CN102982832B (zh) | 2012-11-24 | 2012-11-24 | 一种在线卡拉ok伴奏、人声与字幕的同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210484133.1A CN102982832B (zh) | 2012-11-24 | 2012-11-24 | 一种在线卡拉ok伴奏、人声与字幕的同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102982832A CN102982832A (zh) | 2013-03-20 |
CN102982832B true CN102982832B (zh) | 2015-05-27 |
Family
ID=47856734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210484133.1A Active CN102982832B (zh) | 2012-11-24 | 2012-11-24 | 一种在线卡拉ok伴奏、人声与字幕的同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102982832B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103531220B (zh) * | 2013-10-08 | 2016-02-03 | 百度在线网络技术(北京)有限公司 | 歌词校正方法及装置 |
CN103870234B (zh) * | 2014-02-27 | 2017-03-15 | 北京六间房科技有限公司 | 一种混音方法及其装置 |
CN103841278B (zh) * | 2014-03-11 | 2017-11-28 | 华为技术有限公司 | 歌曲点唱的处理方法、装置及系统 |
CN104392711A (zh) * | 2014-08-27 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 一种实现卡拉ok功能的方法及装置 |
CN105208039B (zh) * | 2015-10-10 | 2018-06-08 | 广州华多网络科技有限公司 | 在线演唱会大合唱的方法及系统 |
US9609397B1 (en) | 2015-12-28 | 2017-03-28 | International Business Machines Corporation | Automatic synchronization of subtitles based on audio fingerprinting |
CN107978318A (zh) * | 2016-10-21 | 2018-05-01 | 咪咕音乐有限公司 | 一种实时混音方法及装置 |
US11310538B2 (en) | 2017-04-03 | 2022-04-19 | Smule, Inc. | Audiovisual collaboration system and method with latency management for wide-area broadcast and social media-type user interface mechanics |
DE112018001871T5 (de) | 2017-04-03 | 2020-02-27 | Smule, Inc. | Audiovisuelles Kollaborationsverfahren mit Latenzverwaltung für großflächige Übertragung |
CN107481709B (zh) * | 2017-08-11 | 2022-04-12 | 腾讯音乐娱乐(深圳)有限公司 | 音频数据传输方法及装置 |
CN108174264B (zh) * | 2018-01-09 | 2020-12-15 | 武汉斗鱼网络科技有限公司 | 歌词同步显示方法、系统、装置、介质及设备 |
US11432031B2 (en) * | 2018-02-23 | 2022-08-30 | Evixar Inc. | Content playback program, content playback method, and content playback system |
CN109600563B (zh) * | 2018-08-01 | 2020-05-15 | 北京微播视界科技有限公司 | 用于确定时间戳的方法和装置 |
WO2020034227A1 (zh) * | 2018-08-17 | 2020-02-20 | 华为技术有限公司 | 一种多媒体内容同步方法及电子设备 |
CN108962286B (zh) * | 2018-10-15 | 2020-12-01 | 腾讯音乐娱乐科技(深圳)有限公司 | 音频识别方法、装置及存储介质 |
CN111261133A (zh) * | 2020-01-15 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 演唱处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000113652A (ja) * | 1998-10-09 | 2000-04-21 | Pioneer Electronic Corp | 情報再生方法 |
CN1845591A (zh) * | 2005-04-06 | 2006-10-11 | 上海渐华科技发展有限公司 | 卡拉ok接收装置 |
CN201611939U (zh) * | 2010-01-06 | 2010-10-20 | 唐颂华 | Ktv棒 |
-
2012
- 2012-11-24 CN CN201210484133.1A patent/CN102982832B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000113652A (ja) * | 1998-10-09 | 2000-04-21 | Pioneer Electronic Corp | 情報再生方法 |
CN1845591A (zh) * | 2005-04-06 | 2006-10-11 | 上海渐华科技发展有限公司 | 卡拉ok接收装置 |
CN201611939U (zh) * | 2010-01-06 | 2010-10-20 | 唐颂华 | Ktv棒 |
Also Published As
Publication number | Publication date |
---|---|
CN102982832A (zh) | 2013-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102982832B (zh) | 一种在线卡拉ok伴奏、人声与字幕的同步方法 | |
US11553235B2 (en) | Audiovisual collaboration method with latency management for wide-area broadcast | |
CN103337240B (zh) | 处理语音数据的方法、终端、服务器及系统 | |
US11683536B2 (en) | Audiovisual collaboration system and method with latency management for wide-area broadcast and social media-type user interface mechanics | |
US8301790B2 (en) | Synchronization of audio and video signals from remote sources over the internet | |
CN105208039B (zh) | 在线演唱会大合唱的方法及系统 | |
CN101770772B (zh) | 嵌入式网络卡拉ok娱乐装置及其声像控制方法 | |
US8223851B2 (en) | Method and an apparatus for embedding data in a media stream | |
CN110910860B (zh) | 线上ktv实现方法、装置、电子设备及存储介质 | |
WO2019038019A1 (en) | COLLABORATIVE SESSION ON A NETWORK | |
CN103268763B (zh) | 一种基于同步音频提取和实时传输的无线影音系统 | |
CN108600815A (zh) | 一种在线实时合唱的方法及系统 | |
TW200418328A (en) | Instant video conferencing method, system and storage medium implemented in web game using A/V synchronization technology | |
CN101981617A (zh) | 多对象音频信号的附加信息比特流产生方法和装置 | |
CN101453655A (zh) | 用户可控的音视频同步调节的方法、系统和设备 | |
CN110856009B (zh) | 网络k歌系统、网络k歌的音视频播放方法及相关设备 | |
CN110267064A (zh) | 音频播放状态处理方法、装置、设备及存储介质 | |
CN101577811A (zh) | 一种数字电视卡拉ok系统及其卡拉ok功能实现方法 | |
CN107770628A (zh) | 一种卡拉ok实现方法及系统、智能家庭终端 | |
CN102760207A (zh) | 在线视频演歌网络互动回应系统 | |
CN104683823A (zh) | 一种多屏联动音视频同步系统 | |
US20140205261A1 (en) | Interactive audio/video system and method | |
CN106792117A (zh) | 手机直播横屏开播的方法、装置和系统 | |
CN105025353B (zh) | 一种播放控制方法及用户终端 | |
CN111787353A (zh) | 多方音频的处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: Wangjiang Road high tech Development Zone Hefei city Anhui province 230088 No. 666 Patentee after: Iflytek Co., Ltd. Address before: Wangjiang Road high tech Development Zone Hefei city Anhui province 230088 No. 666 Patentee before: Anhui USTC iFLYTEK Co., Ltd. |