APP下载

基于SoC的卡拉OK软硬件实现方案的研究*

2017-09-30陈立杰王志国周曜

电信工程技术与标准化 2017年9期
关键词:音高卡拉延时

陈立杰,王志国,周曜

(咪咕音乐有限公司,成都 610041)

基于SoC的卡拉OK软硬件实现方案的研究*

陈立杰,王志国,周曜

(咪咕音乐有限公司,成都 610041)

本文首先介绍了基于SoC的卡拉OK系统的核心硬件音效处理器,包括常见的四类音效处理器各自的特点,音效处理器的架构分析及在原有架构基础的信号流的优化。其次,从固定声音延时、变化声音延时两方面对卡拉OK的音效处理系统进行硬件加速,满足回声、混响、镶边、合声和颤音等音效的一套硬件架构。再次,阐述卡拉OK必备的点歌系统的分析及设计方案,达到功能完备,界面美观,操作简单易于上手。最后,突破传统卡拉OK单一的唱歌模式,对评分系统进行技术分析和方案研究,从而通过评分系统为用户提供从点唱到娱乐互动的全新体验。

音效处理器;硬件加速;点歌系统;评分系统

本文主要从卡拉OK硬件层面的音效处理器及音效处理系统的硬件加速方案,提升高逼真度的回声和混响效果、低损伤啸叫抑制,且具有均衡、压扩、音乐闪避等多种功能。软件层面涉及到音效算法研究,然后对卡拉OK核心的点歌系统、评分系统的研究。

1 音效处理器

1.1 常见的音效处理器的分类

常见的音效处理器主要分为以下4种:

(1)单一的固化芯片处理器

例如在一些AD/DA 系列芯片内部往往有个固定的处理模组,可以实现诸如延迟,混音,参量均衡等音效,主要级联在调音设备、DVD、VCD 等与功放机之间,达到信号处理的目的。

(2)可编程多功能数字音频处理器

市面上主要的单体音效处理器主要以此类音效处理器为主。采用可编程DSP等数字信号处理芯片实现效果。为了便于调节和配置参数,通常会配置串口、USB以及网口等网络设备实现。

(3)带有网络音频传输功能的数字音频处理器

该产品在实现上面两项设备的功能同时还支持网络的音频传输功能,可以方便地实现在一个局部网络内实现音频信号的分享和传输。非常方便实现整个KTV 场所的集中化管理和分布控制等功能。

(4)大型集中处理的数字音频矩阵

该类系统的处理主要依赖于一台强大的主机。每个KTV包间内的网络设备将相应的音频数据转为网络数据分组,经由吉比特以太网等数据协议发送到控制主机,处理之后再回放回各KTV包间。

图1 典型音效处理信号流

这里可以看出小型设备属于分散式系统,需要每个房间进行专门的调整和控制。而集中处理型的音频矩阵非常适合集中管理与控制,但也价格不菲。目前 KTV场所中第二种、第三种数字音频处理器仍占有绝大部分比重。

另一方面,近些年来,高保真、多声道的音响系统的逐步兴起,现有的DSP数字信号处理器越来越无法满足需要。相对于传统的左右双声道模式,而目前动辄5.1、7.1的声道,单位时钟内,庞大的数据量需要DSP 能够快速实时地处理。这也需要DSP的数据处理能力有3~4倍的提升才能满足需要。但目前即使高端的DSP芯片的处理能力仍很难达到实时处理的需要。目前多采用的是多DSP协处理架构满足设计需要。

总体来看,DSP通常在传统的一般控制领域用途中并不擅长,而是专门设计用来在一个时钟周期快速地执行算术乘法累加的操作。研发过程中DSP的使用需要耗费更多的硬件面积,即耗费产品成本。且开发周期结束之后,若需要修改算法和系统扩展所耗费的时间精力和人力成本也是巨大的。这对于仍需不断优化和改进的音效算法的实现也带来巨大的难度。

1.2 音效处理器架构

目前主流的卡拉OK音效处理器的设计以单DSP架构、多DSP协同处理和ARM+DSP 架构为主。这里以某一产品样机为代表的音效处理器采用的是STM32+DSP系统处理架构。

图2 优化后的音效处理信号流图

音效处理器的音频处理模块可以分为输入与输出两个处理模块,通常输入模块的主要功能在于通过高效的音效处理算法,对输入信号进行处理,从而使音乐输入个性鲜明,无杂质;话筒输入浑厚有力,包围感强,有澎湃感;有效改善由于输入设备质量或环境限制而产生的幅频特性不平坦、声音沙哑干涩、易于产生啸叫等问题。输出模块的主要功能在于防止数据溢出而产生杂音以及功率过大而损伤输出终端。如图1所示为音效处理的典型结构,图2为优化后的音效处理信号流图。

2 音效处理系统的硬件加速方案

音效系统的硬件加速主要从固定声音延时、变化声音延时进行实现。

2.1 实现固定延时

其思想为:利用DRAM 作为存储空间,而不是用SRAM来做数据的延迟存储单元,实际的操作方式如图3所示。

图3 固定延时通过读写指针实现原理图

读写指针的速度是一致的,它的意思是声音播放和麦克风的采样率是一致的,那么当读写指针在初始化时相隔一定的长度,那么此长度就是固定声音延时的时间长度(根据相应的采样率就是延时时间)。实现固定的声音延时功能。

2.2 实现变化声音延时

使用一个较大的SRAM用于存储最近麦克风输入的数据,用计算出对应的地址,然后使用DMA从DRAM中取出数据,与前面使用SRAM作为延时存储空间的寻址方法类似。需要使用 SRAM 作为存储空间,特别是当SRAM 较大的话,耗费的成本较大;但是由于其访问速度快,且不会使用DMA消耗系统带宽。

3 点歌系统

3.1 点歌系统分析

卡拉OK点歌系统是数据库技术和多媒体技术结合的软件系统。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立响应迅速,数据一致性和完整性好的数据库,并提供功能全面的数据库维护应用程序;而对于后者则要求应用程序功能完备,界面美观,操作简单易于上手。

前台系统提供多种点歌方式来选择歌曲。系统支持实时编辑已点歌曲列表。播放器支持密码登陆,可以通过设定密码来保护系统不被非法用户使用。后台系统用来管理歌曲数据信息和设置选项。在编辑期提供查找、添加、删除、修改和同步数据,内建正确性检查机制,保证了输入数据的可信性。后台系统支持备份、恢复、和压缩数据库。

3.2 点歌系统设计方案

3.2.1 建立并访问数据库

建立初始数据库:歌曲信息存储在数据库中。实现程序到数据库的连接:在程序中新建一个工程,添加数据访问模块,在该模块中建立ADO Connection负责连接数据源。

3.2.2 编辑器的实现

3.2.2.1 实现数据库的编辑功能

编辑器的基本功能是编辑数据,所以首先实现数据表编辑功能。因为歌曲的某些信息是有限的聚合类型——如性别只有男和女,国别只有中国和外国等,所以为Dbgrid的Cell添加下拉列表,使用户只需从下拉列表种选择要输入的内容,而不必手工输入。歌曲路径是指向某个影音文件的路径,为方便用户添加,在“路径”输入区域添加打开文件按钮。

3.2.2.2 保存、备份和恢复数据库

有必要添加录入数据合法性检查功能,当通过了数据合法性检查和保存期的自动完成功能后,开始保存进程。保存进程将同时压缩数据库以减小其体积。启用了批处理模式后,保存数据库将使用Adotable对象的Up Date Batch方法实现。压缩数据库在保存数据库之后进行,该功能通过Jet对象的Compact Database方法实现。为防止数据库丢失,程序提供备份和恢复数据库功能。通过简单的使用TOpen Dialog和TSave Dialog组件,可以完成数据库的恢复和备份。

3.2.2.3 播放器的实现

(1)登录窗体。播放器支持密码登陆,登陆进程将验证密码的正确性以确定用户是否具有登陆系统的资格。登陆窗体提供一个软键盘用以输入密码。

(2)主窗体的设计。主窗体用来提供个功能窗体的入口和控制播放。

(3)列表设计。列表是提供歌曲列表显示的区域,由Label组成,提供翻页、跳转到页首和页尾的功能。

(4)歌曲列表编辑。播放器提供对歌曲列表的编辑功能,用户可以改变歌曲的播放次序,也可以删除某个曲目。为了得到用户选择的歌曲名称,程序将建立从Label到歌曲序号之间的映射。

(5) 歌曲搜索。用户选择了一个搜索歌曲的方法后,程序将根据用户选择的方法查找对应的曲目,然后返回结果供用户选择。由于搜索实在内存中进行的,所以速度较快,整个过程是对数组的遍历。

(6) 播放窗体。歌曲的播放是在播放窗体内完成的。播放功能通过T实例Mediaplayer1得以实现。为了实现歌曲列表的播放,程序将判断Track Length的值以确定曲目是否已经播放完毕,如果播放完毕而歌曲列表没有到达低端,则播放下一首。

4 评分系统

4.1 技术分析

现有的演唱评分技术一般是基于音准来进行评判的。因此,设计一个卡拉OK评分系统的重点就是如何将音准评分技术和卡拉OK系统进行有机的融合。

音准的目的是使得歌唱或乐器演奏中所发的音高能与一定律制的音高相符。音准评分技术是一种以声音作为输入数据,经处理器进行运算得到量化参数后,最终由显示单元图形界面反馈给用户,使其能够对自己演唱声音进行调整以符合标准要求的技术。音准特征文件是由歌谱制作而成,以句为单位,详细地记录了每一句中的每一个歌词文字以及对应的音高,以及每个音高的起止时间点以及音高值。

4.2 方案设计

在业务流程中,用户输入声音,系统反馈实时评分效果,以指导用户在下个时间点输入正确的声音,以此循环往复。因此,描述评分操作业务流程可以以用户输入声音为起点,用户声音通过麦克风采集后转换为数字语音信号数据,系统通过语音信号处理分析其短时语音基频,并根据频率、音高转换关系得到对应时间点音高参数,这里的时间点来源于卡拉OK 系统播放音频文件得到的播放时间,整个系统都以该时间线为基准处理事件的时间对应关系。在播放音频的同时,系统将解析音准特征文件,以获得标准的音高、时间对应关系,这是评分的基准,用户输入的语音经过处理后得到的音高参数将与该基准对应时间点音高值进行匹配,从而按照匹配度计算得分。系统的演唱界面部分则负责实时向用户展示当前时间点的演唱情况,包括歌词、标准音高序列、用户演唱音高,以及实时得分信息等。用户将根据演唱界面当前的演唱效果作为指导,从而决定下个时间点的输入声音。该循环将重复直至歌曲文件播放完毕,此时系统将计算最终得分,并将结果通过演唱界面展示给用户。

设计方案需要包含以下4个元素:

音高音长信息:根据歌曲歌谱将对应时刻音高,以及时长表现在五线谱上供演唱者参考;

歌词:歌曲歌谱将对应语句歌词文字显示在演唱界面供演唱者参考;

演唱游标:指示演唱者当前演唱进度,并反映演唱者声音的量化音高;

评分状态:演唱者实时得分评价,包括得分、点评、加成等各种状态。

在整体形态上,一般有两种方案。

4.2.1 设计方案 1

将演唱游标固定,音高、歌词信息在界面上从右向左水平移动。这个方案优势是演唱者视线可专注于固定的游标区域,劣势是当一首卡拉OK歌曲节奏比较快时,信息的运动速度也很快,演唱者浏览信息的速度跟不上信息自身运动速度。

4.2.2 设计方案 2

是将当前句的音高、歌词,以及下一句的歌词固定显示在屏幕上,游标随着演唱进度水平向右移动。这样做的好处是演唱者一次性就可以把当前句和下一句歌词都提前浏览,便于演唱;另一方面,由于不需要移动大量的信息,减少了信息刷新面积,节省了大量 CPU 的计算消耗,可以使系统更灵活的运用在嵌入式领域以及其他低功耗的应用领域。

5 结束语

卡拉OK音效处理器作为重要的音效处理组件,是整个KTV系统的灵魂所在。基于SoC技术的卡拉OK音效处理器实现音频采集、音频输出以及相应的接口,实现基本的音效处理算法包括回声、混响、均衡、压限和啸叫抑制等音效处理。

音频系统是一个较慢的系统,所以为了减少硬件面积的开销,音效处理的硬件加速实现共用硬件,把很多的乘法运算和加法运算采用串行的方式进行。以及修改比较耗硬件面积的软件实现的算法,通过对算法的重新梳理和替代,用较小的硬件代价完成和软件实现效果近似的功能块。

[1] 刘爱珍. 浅析卡拉OK组合音响电子混响器原理与维修策略[J].科学与财富, 2016,(Z1):598-598.

[2] 李国桢. 在线卡拉OK流媒体子系统[D]. 武汉:湖北工业大学, 2007.

[3] 李林葳. 卡拉OK音效算法的设计与DSP实现[D]. 重庆:重庆大学, 2016.

[4] 李建红, 梁光胜. 基于SPCE061A的卡拉OK智能点唱系统的设计[J]. 中国电力教育, 2005,(z2):24-27.

Research on implementation scheme of Karaoke hardware and software based on SoC

CHEN Li-jie, WANG Zhi-guo, ZHOU Yao
(Migu Music Co., Ltd., Chengdu 610041, China)

This article first introduced the karaoke system based on SoC core hardware sound processor,including the four characteristics of the four types of audio processors,the architecture analysis of the sound processor and the optimization of the signal flow based on the original architecture.Secondly, from the fi xed sound delay, change the sound delay on both aspects of the karaoke sound processing system hardware acceleration,a set of hardware architectures that meet the effects of echo, reverb, trim, chorus,and vibrato.Again, elaborate karaoke VoD system analysis and design,to achieve full-featured, beautiful interface, easy to operate easy.Finally, breaking the traditional karaoke single singing mode, the scoring system for technical analysis and program research, so that through the scoring system to provide users with a new experience from the point of singing to entertainment.

audio processor; hardware acceleration; VoD system; grading system

TP311

A

1008-5599(2017)09-0017-05

2017-08-25

* 中国移动集团级一类科技创新成果,原成果名称为《咪咕家庭音乐互动娱乐平台》。

猜你喜欢

音高卡拉延时
里盖蒂《小提琴协奏曲》中的“双律制音高组织”研究
基于级联步进延时的顺序等效采样方法及实现
影音室里面的卡拉OK
改进音高轮廓创建和选择的旋律提取算法
卡拉OK也发烧 Earthquake(大地震)DJ-Quake
你是哪种职业呢?
序列的蜕变——皮埃尔·布列兹室内乐作品《无主之槌》音高组织初探
音乐是一种特殊的语言——聊聊音高的魅力
卡拉妈妈如坐针毡
Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration