APP下载

基于虚拟现实技术的音乐教学系统的研究

2019-04-09

关键词:教学系统音高音频

胡 锐

(苏州科技大学 信息化建设与管理中心,江苏 苏州215009)

随着互联网与信息化的发展,互联网辅助教学已经在多学科中得到运用[1]。音乐教学的目的,本质上在于培养学员的审美情趣及审美能力,而其中的内容就包括了歌唱、演奏、律动、欣赏、创作以及相关的基础知识和基本技能的培养。这就决定了音乐教学方法的特殊性,其表现为感性与理性的融合。因此,教学准备、教学过程以及对教学的互动,都可以借助互联网技术得以实现[2]。

以虚拟现实技术为基础的音乐教学系统将教师资源和教学环境资源虚拟化,从而使资源使用更加便利,资源利用率更加优化[3]。通过虚拟现实技术特有沉浸感、交互性和构想性来营造出音乐学习所需的环境。

笔者以Unity3D 引擎为基础开发平台,结合其他建模工具,来构建一个高效虚拟现实音乐教学系统。通过该系统学生不仅可以随时随地在虚拟的环境中学习音乐,而且可以实时的得到在线老师的帮助。

1 相关技术

1.1 虚拟现实技术

虚拟现实技术是仿真技术的一个重要方向,是仿真技术与计算机图形学人机接口技术、多媒体技术、传感技术和网络技术等多种技术的集合,是一门富有挑战性的交叉技术前沿学科和研究领域[4]。虚拟现实技术(VR)主要包括模拟环境、感知、自然技能和传感设备等方面[5]。虚拟现实技术建立人工构造的三维虚拟环境,用户以自然的方式与虚拟环境中的物体进行交互作用、 相互影响,扩展了人类认识世界、模拟和适应世界的能力[6]。

1.2 Unity3D 引擎

Unity 是由Unity Technologies 开发的一个让用户轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具[7]。Unity 作为虚拟现实系统开发的经典软件之一,自带强大的功能组件,可以快速的实现场景中事物的基本物理属性添加,并为用户提供相应的功能组件接口,用户可以根据自身的需求,用JavaScript、C#等常用语言为特定的对象创建功能[8]。

通过Unity 引擎,可以快速的创建三维场景及驱动带动画的虚拟模型。这为三维虚拟现实应用开发带来了很大的便利,也是现在虚拟场景开发的主流引擎。

2 音乐教学系统的设计

2.1 系统架构

音乐教学系统提供多种音乐学习服务、在线指导、虚场拟环境学习和智能评价等。为了实现其功能,整个平台采用五层架构,从下往上分别是:接入层、数据处理层、数据数存储层、场景管理层和应用层,如图1所示。

图1 音乐教学系统架构

(1)接入层:接入层主要包括了音频接入和视频接入[9]。音频接入通过语音采集设备(比如:话筒)实现声音的输入;视频接入通过视频采集设备(比如:摄像机)实现视频的输入[10]。(2)数据处理层:包括音频处理系统和教师指导系统。音频处理系统实现声音特征数据的提取和两组基音数据的比较。(3)数据存储层:实现音频及音频特征数据的存储和视频存储。存储接口采用常用的ODBC 和JDBC 的数据访问方式,音视频文件接口通过Java 平台已经封装好的文件IO 系统提供文件的存取服务[11]。(4)场景管理层:包括虚拟场景和现实场景。虚拟场景通过软件创建的虚拟的学习环境和人物[12]。现实场景通过接入现实视频实现。(5)应用层:实现常规的在线指导学习、虚拟环境学习和自主学习的智能评价[13]。

2.2 音频处理

音频处理系统包括特征提取模块和特征处理模块两个部分。

特征提取模块包括基音频率识别器和音长获取器,如图2所示。基音频率识别器内置的基音频率认别方法有: 倒谱法、谐波峰值法、循环直方法、小波变换法和并行处理法等。根据教师指导系统中教师选定的获取基音的方法,进行基音频率数据特征的提取。音长获取器采用算法T=ΔN·1/(fs/2q)提取音长的时值,其中ΔN是两个音符端点之间的采样个数,q是小波分解尺度,fs为信号的初始进行采样时的频率。

图2 特征提取模块

特征处理模块包括频率音高转换器、音高比较器和音长比较器,如图3所示。频率音高转换器转换的方式是

图3 音高音长比较器

其中,y为基音频率,X为对应的音高,比如:4 000 Hz 对 应 的 音 高 为87.21,即4 000 Hz 对应的音高为b4+21 音分。音高比较器比较的方式H=A-B,其中A为待检声音高,B为基准声音音高,H为音高差值。音长比较器比较的方式L=C-D,其中C为待检声音长,D为基准声音音长,L为音长差值。比较每个音的音高和音长是否相同,给出待检音符基音是偏高多少,偏低多少;给出待检音符音长是偏长多少时值,偏短多少时值,该音频处理的方法已申请专利,申请号为:201610380874.3。

2.3 虚拟场景

采用3DMax 创建虚拟学习环境的模型,将建好的模型导入Unity 3D 进行渲染。为了模拟现实生活中移动物体碰撞后产生的行为变化,文中使用触发器碰撞检测与传统碰撞检测相结合,并设计开发相应的行为变化组件,当动态物体进入指定触发器区域时,调用OnTriggerEnter(Collider collider)函数改变状态参数的值,激活行为组件,产生适当的行为变化;当动态物体离开触发器区域时,调用OnTriggerExit(Collidercollider)函数改变状态参数的值,做出相应的行为变化。

摄像机是整个虚拟现实全景展示平台人机交互模块的关键节点,它相当于用户在虚拟世界的眼睛。在Unity3D 中,对摄像机的配置需要和很多模块结合,具体的视角变换组件的主要代码如下:

//获取当前位置

x=Input.GetAxis("Horizontal") * Time.deltaTime * speed;//左右移动

z=Input.GetAxis("Vertical") * Time.deltaTime * speed;//前后移动

transform.Rotate(new Vector3(x,y,0));//旋转角度(增加)

//相机位置

transform.rotation=Quaternion.Slerp(transform.rotation,targetRotation,Time.deltaTime * 3)

3 音乐教学系统关键技术实现

3.1 虚拟场景

将音频处理的结果在虚拟场景中动态的显示出来,增加虚拟场景中学习的互动性,通过Unity3D 开发实现在虚拟场景中显示音频处理的结果提示信息。

void Awake()

{//初始化Alhpa 配制字体和颜色

Color alpha = mText.color;

alpha.a = DefAlpha;

mText.color = alpha;

}

void Start()

{

mText.text = Texts[CurrentTextIndex];//给mText 赋值

Fade(true);

}

3.2 虚拟场景中播放视频

使用Unity3D 开发在虚拟场景中播放教学视频,是在GUI 层面上播放视频。具体核心代码如下:

//电影纹理

public MovieTexture movTexture;

void Start()

{

//设置电影纹理播放模式为循环

movTexture.loop=true;

}

//播放指定视频

void OnGui()

{

if(GUI.Button(new Rect(20,10,200,50),"PLAY ControlMode.Full"))

{

Handheld.PlayFullScreenMovie("http://210.29.9.155/test.ogg",Color.black,FullScreenMovieControlMode.Full);

}

}

4 音乐教学系统性能测试

为了检测文中所提到的音乐教学系统,对该系统的VR 视频播放功能进行压力测试。测试服务端硬件环境,见表1。

表1 服务端硬件环境

由于VR 设备有限,故该测试用PC VR 播放器代替VR 设备播放。利用25 台VM 虚拟机,每台VM 虚拟机开4 个VR 播放器进程,就相当于100个VR 设备用户,服务器性能如图4所示,CPU 消耗47%,内存消耗15%,带宽消耗41.5%左右。

每台VM 虚拟机开8 个VR 播放器进程,就相当于200 个VR 设备用户,服务器性能如图5所示,CPU消耗79%,内存消耗15%,带宽开始出现瓶颈,接近1Gbps,出现抖动。

图4 100个用户服务端性能

图5 200个用户服务端性能

因此,音乐教学系统的瓶颈在网络带宽上,如需继续增压,可以采用部署集群服务端的方式。

5 结语

该系统包括两个部分:一是VR 虚拟环境学习,结合虚拟现实技术和音频处理技术,使学生可以在VR虚拟环境中进行音乐自主学习,音频处理系统实时进行评价;二是传统在线教师指导学习。

进一步的研究方向是实现VR 全景音乐在线学习。

猜你喜欢

教学系统音高音频
淄博市大力推进交互式在线教学系统应用
乔治·克拉姆《螺旋的银河系》的镜像世界
基于Unity的计算机硬件组装仿真教学系统设计
里盖蒂《小提琴协奏曲》中的“双律制音高组织”研究
基于移动学习理念的智慧教学系统
论高平钢琴奏鸣曲《浮影》中纵向音高组织的逻辑运用
必须了解的音频基础知识 家庭影院入门攻略:音频认证与推荐标准篇
基于Daubechies(dbN)的飞行器音频特征提取
改进音高轮廓创建和选择的旋律提取算法
基于NRF无线通讯技术的自组网互助教学系统研究与开发