一种实时空间指向性立体声解码方法技术

技术编号:30632440 阅读:19 留言:0更新日期:2021-11-04 00:03
本发明专利技术具体是一种实时空间指向性立体声解码方法;其特征是,解码方法包括、步骤1、声音对象的创建和控制;步骤2、使用和播放声音对象:步骤3、创建和设置听众对象:步骤4、空间立体声的制作;步骤5、声音解码及播放;步骤6、将音频格式转换为OpenAL可以识别的格式;步骤7、确定声音通道数;步骤8、确定通道对应的音响;步骤9、创建一个udp接收对象接收互动程序发送的位置坐标,将坐标发送给声音对象和观众对象,音频程序获取到声音坐标立即赋值给声音对象位置并播放对应的声音对象即可听到对应位置的声音。本发明专利技术提出一种低成本的生成空间中立体音效的方法,从而达到丰富展项内容,提升观众互动体验的目的。观众互动体验的目的。观众互动体验的目的。

【技术实现步骤摘要】
一种实时空间指向性立体声解码方法


[0001]本专利技术涉及空间立体声播放设备领域,具体是一种实时空间指向性立体声解码方法。

技术介绍

[0002]随着视频影视投影技术的发展,展馆展会等的展项内容极为丰富,结合了影视、声音、动画等的多媒体互动展项变得炙手可热。但是传统的展项多是双通道声音,声音位置大小不明确。故而无法给观众提供身临其境的体验。

技术实现思路

[0003]本专利技术的目的在于克服上述缺陷,提出一种低成本的生成空间中立体音效的方法,从而达到丰富展项内容,提升观众互动体验的目的。
[0004]为了达到上述目的,本专利技术是这样实现的:一种实时空间指向性立体声解码方法;其包括带有声卡的作为播放器的PC主机,还包括功放和音响组件,所述功放、音响组件通过HDMI线与PC主机连接,所述音响组件包含两个前置音响,两个吊顶音响,两个后置音响,一个中置音响,一个低音炮;其特征是,解码方法包括步骤1、声音对象的创建和控制:采用OpenAL创建和管理声音对象,输入空间位置坐标控制声音对象;步骤1.1、声音对象的具体实现:1)、读取声音文件;2)、读入声音数据到buffer;3)、读取声音格式;4)、创建OpenAL上下文;5)、创建OpenAL声音对象;6)、将声音数据buffer拷贝给OpenAL声音对象;步骤2、使用和播放声音对象:步骤2.1、采用以下代码执行sound.sounds[0]->setLoop(true); //设置循环播放声音;sound.sounds[0]-&;gt;play(); //播放声音;sound.sounds[0]->setSource(x, y, z); //设置声音位置,此处xyz为udp消息发送的位置坐标步骤3、创建和设置听众对象:步骤3.1、采用以下代码执行void initListener() { //创建听众
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
float vec[6] = { 0.0, 0.0,
ꢀ-
1.0, 0.0, 1.0, 0.0 };
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
alListenerfv(AL_ORIENTATION, vec);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
alListener3f(AL_POSITION, 0.0, 0.0, 0.0);
ꢀꢀꢀꢀꢀꢀꢀ
}
ꢀꢀꢀꢀꢀꢀꢀ
void setListener(float x, float y, float z) { //设置听众位置
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
alListener3f(AL_POSITION, x, y, z);
ꢀꢀꢀꢀꢀꢀꢀ
}步骤4、空间立体声的制作,采用Steinberg Nuendo 10编码软件以及立体声卡进行立体声编码;步骤5、声音解码及播放;步骤5.1、读取音频文件:1)、根据路径读取声音文件到内存;2)、从读取的内存获得文件头;3)、根据文件头解析声音格式;4)、根据读取的内容解析出声音数据;5)、把声音数据拷贝到buffer;步骤6、解析音频格式:将音频格式转换为OpenAL可以识别的格式步骤7、读取到声音格式的nChannels确定声音通道数;步骤8、读取到声音格式的dwChannelMask确定通道对应的音响;步骤9、播放控制:创建一个udp接收对象接收互动程序发送的位置坐标,将坐标发送给声音对象和观众对象,音频程序获取到声音坐标立即赋值给声音对象位置并播放对应的声音对象即可听到对应位置的声音。
[0005]本解码方法采用计算机领域的多通道立体声技术,通过一张立体声卡合成立体声效,同时使用专用的播放程序负责声音解码,以生成空间中立体的音效;创造性的将3d立体音效应用于互动展项上,丰富展项的内容,提升观众的互动体验;空间指向性立体声是一种全新的声音方案,它比普通的多通道声音增加了声音对象的概念,在互动程序中创建和移动声音对象,声音对象能够控制多个声音通道音量的大小,在互动时给观众一种身临其境的体验。
附图说明
[0006]图1为本立体声解码方法的运作过程示意图。
具体实施方式
[0007]以下通过具体实施例进一步说明本专利技术。
[0008]如图1所示,一种实时空间指向性立体声解码方法;其包括带有声卡的作为播放器的PC主机,还包括功放和音响组件,所述功放、音响组件通过HDMI线与PC主机连接,所述音响组件包含两个前置音响,两个吊顶音响,两个后置音响,一个中置音响,一个低音炮;其特征是,解码方法包括步骤1、声音对象的创建和控制:采用OpenAL创建和管理声音对象,输入空间位置坐标控制声音对象;
步骤1.1、声音对象的具体实现:1)、读取声音文件;2)、读入声音数据到buffer;3)、读取声音格式;4)、创建OpenAL上下文;5)、创建OpenAL声音对象;6)、将声音数据buffer拷贝给OpenAL声音对象;步骤2、使用和播放声音对象:步骤2.1、采用以下代码执行sound.sounds[0]->setLoop(true); //设置循环播放声音;sound.sounds[0]->play(); //播放声音;sound.sounds[0]->setSource(x, y, z); //设置声音位置,此处xyz为udp消息发送的位置坐标步骤3、创建和设置听众对象:步骤3.1、采用以下代码执行void initListener() { //创建听众
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
float vec[6] = { 0.0, 0.0,
ꢀ-
1.0, 0.0, 1.0, 0.0 };
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
alListenerfv(AL_ORIENTATION, vec);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
alListener3f(AL_POSITION, 0.0, 0.0, 0.0);
ꢀꢀꢀꢀꢀꢀꢀ
}
ꢀꢀꢀꢀꢀꢀꢀ
void setListener(float x, float y, float z) { //设置听众位置
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
alListener3f(AL_POSITION, x, y, z);
ꢀꢀꢀꢀꢀꢀꢀ
}步骤4、空间立体声的制作,采用Steinberg Nuendo 10编码软件以及立体声卡进行立体声编码;步骤5、声音解码及播放;步骤5.1、读取音频文件:1)、根据路径读取声音文件到内存;2)、从读取的内存获得文件头;3)、根据文件头解析声音格式;4)、根据读取的内容解析出声音数据;5)、把声音数据拷贝到buffer;步骤6、解析音频格式:将音频格式转换为OpenAL可以识别的格式步骤7、读取到声音格式的nChannels确定声音通道数;步骤8、读取到声音格式的dwCha本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实时空间指向性立体声解码方法;其包括带有声卡的作为播放器的PC主机,还包括功放和音响组件,所述功放、音响组件通过HDMI线与PC主机连接,所述音响组件包含两个前置音响,两个吊顶音响,两个后置音响,一个中置音响,一个低音炮;其特征是,解码方法包括步骤1、声音对象的创建和控制:采用OpenAL创建和管理声音对象,输入空间位置坐标控制声音对象;步骤1.1、声音对象的具体实现:1)、读取声音文件;2)、读入声音数据到buffer;3)、读取声音格式;4)、创建OpenAL上下文;5)、创建OpenAL声音对象;6)、将声音数据buffer拷贝给OpenAL声音对象;步骤2、使用和播放声音对象:步骤2.1、采用以下代码执行sound.sounds[0]->setLoop(true); //设置循环播放声音;sound.sounds[0]->play(); //播放声音;sound.sounds[0]->setSource(x, y, z); //设置声音位置,此处xyz为udp消息发送的位置坐标步骤3、创建和设置听众对象:步骤3.1、采用以下代码执行void initListener() { //创建听众
ꢀꢀꢀꢀꢀꢀꢀ
float vec[6] = { 0.0, 0.0,
ꢀ-
1.0, 0.0, 1.0, 0.0 };
ꢀꢀꢀꢀꢀꢀꢀ

【专利技术属性】
技术研发人员:曾子光曾晓翔吴云武王冬雷慈正宇
申请(专利权)人:上海风语筑文化科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1