一种低延迟的琴教学用实时互动系统

申请号 CN202210141158.5 申请日 2022-02-16 公开(公告)号 CN114495639B 公开(公告)日 2024-03-22
申请人 深圳品阔信息技术有限公司; 发明人 倪燕; 陈军; 刘宏; 黄彦;
摘要 本 发明 属于 钢 琴教学领域,具体的说是一种低延迟的钢琴教学用实时互动系统,设备连接:老师或学生的 电子 钢琴或MIDI设备通过MIDI数据线与电脑设备连接;MIDI 信号 传输:浏览器通过电子 乐器 和电脑之间的通信协议传输并接收MIDI信号数据;琴键对应的数值变更 颜色 ;接收到MIDI信号数据后,通过网页脚本语言的 键盘 按下事件输出琴键对应的音符元素由白色或黑色转成其他颜色的数据,键盘弹起事件时输出则相反;改用WebRTC协议传输MIDI信号数据;推流至 云 端流媒体 服务器 ;通过WebRTC协议将音频与HTML5模拟钢琴画面低延迟推送至云端流媒体服务器使老师或学生在弹奏钢琴时可以直观的看见具体琴键的功能。
权利要求

1.一种低延迟的琴教学用实时互动系统,其特征在于:该实时互动系统包括以下步骤:
S1:设备连接:老师或学生的电子钢琴或MIDI设备通过MIDI数据线与电脑设备连接;
S2:MIDI信号传输:浏览器通过电子乐器和电脑之间的通信协议传输并接收MIDI信号数据;
S3:琴键对应的数值变更颜色;接收到MIDI信号数据后,通过网页脚本语言的键盘按下事件输出琴键对应的音符元素由白色或黑色转成其他颜色的数据,键盘弹起事件输出由其他颜色转回原来的白色或黑色;
S4:改用WebRTC协议传输MIDI信号数据;
S5:推流至端流媒体服务器
所述S4中改用WebRTC协议传输MIDI信号数据后的具体执行方法为:
A1:MIDI设备A首先创建本地端机器与远程机器的一条链接对象即PeerConnection对象,将音视频数据封装成媒体内容的流即MediaStream添加到PeerConnection对象中;
A2:MIDI设备A调用PeerConnection对象中的CreateOffer方法创建一个用于offer的SDP对象,CreateOffer方法会先获取本地所支持的音视频编码格式,传输给对端进行协商,然后通过Signal信令服务器将SDP对象包数据发送给MIDI设备B;
A3:MIDI设备B接收到MIDI设备A发送过的offerSDP对象,通过PeerConnection对象的SetRemoteDescription方法将其保存起来,通过PeerConnection对象的
SetLocalDescription方法保存应答SDP对象并将它通过Signal信令服务器发送给MIDI设备A;
A4:MIDI设备A接收到MIDI设备B发送过来的应答SDP对象,将其通过PeerConnection对象的SetRemoteDescription方法进行保存;
A5:在SDP信息的offer/answer流程中,MIDI设备A和MIDI设备B已经根据SDP信息创建好相应的音频Channel和视频Channel并开启Candidate数据的收集;
A6:当MIDI设备A收集到Candidate信息后,PeerConnection对象通过一个事件触发器OnIceCandidate接口给MIDI设备A发送通知,MIDI设备A将收到的Candidate信息通过Signal信令服务器发送给MIDI设备B,MIDI设备B通过PeerConnection对象的AddIceCandidate方法保存起来,当MIDI设备B收集到Candidate信息时重复操作;
A7:MIDI设备A和MIDI设备B成功建立音视频传输的P2P通道,MIDI设备B接收到MIDI设备A传送的音视频流,通过PeerConnection对象的OnAddStream回调接口,返回一个标识MIDI设备A端音视频流的MediaStream对象,MIDI设备B对MediaStream对象进行渲染,MIDI设备B到MIDI设备A的音视频流的传输同样采用上述方法。
2.根据权利要求1所述的一种低延迟的钢琴教学用实时互动系统,其特征在于:所述S2中电子乐器和电脑之间的通信协议具体为Web服务协议、MIDI通信协议或API接口协议。
3.根据权利要求2所述的一种低延迟的钢琴教学用实时互动系统,其特征在于:所述S3中所述的网页脚本语言为JavaScript,所述S3中的键盘按下事件为KeyDown,所述S3中琴键对应的音符元素为DIV,所述S3中键盘弹起事件为KeyUp。
4.根据权利要求1所述的一种低延迟的钢琴教学用实时互动系统,其特征在于:所述A2中传输给对端进行协商的具体步骤为:
B1:执行清除动作,避免指针指向无效数据;
B2:如果当前编码信息不为空,说明不是第一次执行CreateOffer,那么就将当前的编码信息记录存入SDP对象中;
B3:调用PeerConnection的SetLocalDescription方法进行本地端编码格式的匹配,SetLocalDescription方法接受会话描述中的单个参数,并返回一个承诺,一旦描述被异步更改,该承诺就会实现,直到两个对等方配置达成一致时,协商完成。
5.根据权利要求4所述的一种低延迟的钢琴教学用实时互动系统,其特征在于:所述A3中SetRemoteDescription方法具体为调用此方法先设置远程描述,然后生成发送到对端计算机的应答数据包即answer并调用PeerConnection对象的CreateAnswer方法创建一个应答的SDP对象。
6.根据权利要求5所述的一种低延迟的钢琴教学用实时互动系统,其特征在于:所述A5中的Candidate数据即MIDI设备端的IP地址信息即本地IP地址、公网IP地址、Relay服务端分配的地址。
7.根据权利要求6所述的一种低延迟的钢琴教学用实时互动系统,其特征在于:所述S5具体为捕获HTML5模拟钢琴界面数据传输至云端流媒体服务器,云端流媒体服务器接收音视频流的数据包,以TS或RTP的封包格式经过网络端口外送。

说明书全文

一种低延迟的琴教学用实时互动系统

技术领域

[0001] 本发明涉及钢琴教学领域,具体是一种低延迟的钢琴教学用实时互动系统。

背景技术

[0002] 钢琴是西洋古典乐器中的一种键盘乐器,现在在对钢琴进行教学时多采用线上和线下两种模式进行,现在在对钢琴进行线上教学时多采用直播教学的方式。
[0003] 目前在钢琴直播教学中,想要实现钢琴弹奏的互动,需要通过老师与学生进行音视频的实时互动连麦完成,老师与学生通过摄像头画面观看双方的弹奏过程。
[0004] 现有的钢琴直播教学系统老师与学生在弹奏钢琴时不能直观的看到对方弹奏的具体琴键位置且弹奏钢琴时声音传输会受环境影响音质,从而导致直播教学学生与老师皆出现中看不清、听不清的情况,使教学效率和效果都较不理想;因此,针对上述问题提出一种低延迟的钢琴教学用实时互动系统。

发明内容

[0005] 为了弥补现有技术的不足,现有的钢琴直播教学系统老师与学生在弹奏钢琴时不能直观的看到对方弹奏的具体琴键位置且弹奏钢琴时声音传输会受环境影响音质,从而导致直播教学学生与老师皆出现中看不清、听不清的情况,使教学效率和效果都较不理想的问题,本发明提出一种低延迟的钢琴教学用实时互动系统。
[0006] 本发明解决其技术问题所采用的技术方案是:本发明所述的一种低延迟的钢琴教学用实时互动系统,该实时互动系统包括以下步骤:
[0007] S1:设备连接:老师或学生的电子钢琴或MIDI设备通过MIDI数据线与电脑设备连接;
[0008] S2:MIDI信号传输:浏览器通过电子乐器和电脑之间的通信协议传输并接收MIDI信号数据;
[0009] S3:琴键对应的数值变更颜色;接收到MIDI信号数据后,通过网页脚本语言的键盘按下事件输出琴键对应的音符元素由白色或黑色转成其他颜色的数据,键盘弹起事件输出由其他颜色转回原来的白色或黑色;
[0010] S4:改用WebRTC协议传输MIDI信号数据;
[0011] S5:推流至端流媒体服务器
[0012] 优选的,所述S2中电子乐器和电脑之间的通信协议具体为Web服务协议、MIDI通信协议或API接口协议。
[0013] 优选的,所述S3中所述的网页脚本语言为JavaScript,所述S3中的键盘按下事件为KeyDown,所述S3中琴键对应的音符元素为DIV,所述S3中键盘弹起事件为KeyUp。
[0014] 优选的,所述S4中改用WebRTC协议传输MIDI信号数据后的具体执行方法为:
[0015] A1:MIDI设备A首先创建本地端机器与远程机器的一条链接对象即PeerConnection对象,将音视频数据封装成媒体内容的流即MediaStream添加到PeerConnection对象中;
[0016] A2:MIDI设备A调用PeerConnection对象中的CreateOffer方法创建一个用于offer的SDP对象,CreateOffer方法会先获取本地所支持的音视频编码格式,传输给对端进行协商,然后通过Signal信令服务器将SDP对象包数据发送给MIDI设备B;
[0017] A3:MIDI设备B接收到MIDI设备A发送过的offerSDP对象,通过PeerConnection对象的SetRemoteDescription方法将其保存起来,通过PeerConnection对象的SetLocalDescription方法保存应答SDP对象并将它通过Signal信令服务器发送给MIDI设备A,SetLocalDescription方法的作用是改变与连接相关的描述,连接的offer通常来自于负责匹配的服务器所发送的数据;
[0018] A4:MIDI设备A接收到MIDI设备B发送过来的应答SDP对象,将其通过PeerConnection对象的SetRemoteDescription方法进行保存;
[0019] A5:在SDP信息的offer/answer流程中,MIDI设备A和MIDI设备B已经根据SDP信息创建好相应的音频Channel和视频Channel并开启Candidate数据的收集;
[0020] A6:当MIDI设备A收集到Candidate信息后,PeerConnection对象通过一个事件触发器OnIceCandidate接口给MIDI设备A发送通知,MIDI设备A将收到的Candidate信息通过Signal信令服务器发送给MIDI设备B,MIDI设备B通过PeerConnection对象的AddIceCandidate方法保存起来,当MIDI设备B收集到Candidate信息时重复操作;
[0021] A7:MIDI设备A和MIDI设备B成功建立音视频传输的P2P通道,MIDI设备B接收到MIDI设备A传送的音视频流,通过PeerConnection对象的OnAddStream回调接口,返回一个标识MIDI设备A端音视频流的MediaStream对象,MIDI设备B对MediaStream对象进行渲染,MIDI设备B到MIDI设备A的音视频流的传输同样采用上述方法。
[0022] 优选的,所述A2中传输给对端进行协商的具体步骤为:
[0023] B1:执行清除动作,避免指针指向无效数据;
[0024] B2:如果当前编码信息不为空,说明不是第一次执行CreateOffer,那么就将当前的编码信息记录存入SDP对象中;
[0025] B3:调用PeerConnection的SetLocalDescription方法进行本地端编码格式的匹配,SetLocalDescription方法接受会话描述中的单个参数,并返回一个承诺,一旦描述被异步更改,该承诺就会实现,直到两个对等方配置达成一致时,协商完成。
[0026] 优选的,所述A3中SetRemoteDescription方法具体为调用此方法先设置远程描述,然后生成发送到对端计算机的应答数据包即answer并调用PeerConnection对象的CreateAnswer方法创建一个应答的SDP对象,CreateAnswer方法在WebRTC连接的提供/应答协商期间,为从远程对等方收到的提供创建SDP应答。
[0027] 优选的,所述A5中的Candidate数据即MIDI设备端的IP地址信息即本地IP地址、公网IP地址、Relay服务端分配的地址。
[0028] 优选的,所述S5具体为捕获HTML5模拟钢琴界面数据传输至云端流媒体服务器,云端流媒体服务器接收音视频流的数据包,以TS或RTP的封包格式经过网络端口外送。
[0029] 本发明的有益之处在于:
[0030] 本发明通过电子钢琴或MIDI设备连接HTML5模拟钢琴进行MIDI信号传输,接收MIDI信号,并对琴键对应的数值通过JavaScript加CSS变更颜色,WebRTC协议将音频与HTML5模拟钢琴画面低延迟推送至云端流媒体服务器,实现了提高线上教学时钢琴音质,使老师或学生在弹奏钢琴时可以直观的看见具体琴键的功能,解决了现有的钢琴直播教学系统老师与学生在弹奏钢琴时不能直观的看到对方弹奏的具体琴键位置且弹奏钢琴时声音传输会受环境影响音质,从而导致直播教学学生与老师皆出现中看不清、听不清的情况,使教学效率和效果都较不理想的问题,使老师与学生弹奏的内容都会实时的同步显示给对方看到,基本契合了线下钢琴教学的场景。附图说明
[0031] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0032] 图1为本发明的总体流程示意图;
[0033] 图2为本发明的S4具体执行方法流程示意图;
[0034] 图3为本发明的A2具体流程示意图。

具体实施方式

[0035] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0036] 实施例一
[0037] 请参阅图1‑3所示,一种低延迟的钢琴教学用实时互动系统,该实时互动系统包括以下步骤:
[0038] S1:设备连接:老师或学生的电子钢琴或MIDI设备通过MIDI数据线与电脑设备连接;
[0039] S2:MIDI信号传输:浏览器通过电子乐器和电脑之间的通信协议传输并接收MIDI信号数据;
[0040] S3:琴键对应的数值变更颜色;接收到MIDI信号数据后,通过网页脚本语言的键盘按下事件输出琴键对应的音符元素由白色或黑色转成其他颜色的数据,键盘弹起事件输出由其他颜色转回原来的白色或黑色;
[0041] S4:改用WebRTC协议传输MIDI信号数据;
[0042] S5:推流至云端流媒体服务器。
[0043] 所述S2中电子乐器和电脑之间的通信协议具体为Web服务协议、MIDI通信协议或API接口协议。
[0044] 所述S3中所述的网页脚本语言为JavaScript,所述S3中的键盘按下事件为KeyDown,所述S3中琴键对应的音符元素为DIV,所述S3中键盘弹起事件为KeyUp。
[0045] 所述S4中改用WebRTC协议传输MIDI信号数据后的具体执行方法为:
[0046] A1:MIDI设备A首先创建本地端机器与远程机器的一条链接对象即PeerConnection对象,将音视频数据封装成媒体内容的流即MediaStream添加到PeerConnection对象中;
[0047] A2:MIDI设备A调用PeerConnection对象中的CreateOffer方法创建一个用于offer的SDP对象,CreateOffer方法会先获取本地所支持的音视频编码格式,传输给对端进行协商,然后通过Signal信令服务器将SDP对象包数据发送给MIDI设备B;
[0048] A3:MIDI设备B接收到MIDI设备A发送过的offerSDP对象,通过PeerConnection对象的SetRemoteDescription方法将其保存起来,通过PeerConnection对象的SetLocalDescription方法保存应答SDP对象并将它通过Signal信令服务器发送给MIDI设备A,SetLocalDescription方法的作用是改变与连接相关的描述,连接的offer通常来自于负责匹配的服务器所发送的数据;
[0049] A4:MIDI设备A接收到MIDI设备B发送过来的应答SDP对象,将其通过PeerConnection对象的SetRemoteDescription方法进行保存;
[0050] A5:在SDP信息的offer/answer流程中,MIDI设备A和MIDI设备B已经根据SDP信息创建好相应的音频Channel和视频Channel并开启Candidate数据的收集;
[0051] A6:当MIDI设备A收集到Candidate信息后,PeerConnection对象通过一个事件触发器OnIceCandidate接口给MIDI设备A发送通知,MIDI设备A将收到的Candidate信息通过Signal信令服务器发送给MIDI设备B,MIDI设备B通过PeerConnection对象的AddIceCandidate方法保存起来,当MIDI设备B收集到Candidate信息时重复操作,OnIceCandidate事件触发器的作用是能够让函数在时间发生在实例PeerConnection上时被调用,AddIceCandidate方法用于添加一个ICE(ICE是一个交互式连接建立的框架,这个框架的算法是寻找最低等待时间的路径去连接两端)候选地址信息代理;
[0052] A7:MIDI设备A和MIDI设备B成功建立音视频传输的P2P通道,MIDI设备B接收到MIDI设备A传送的音视频流,通过PeerConnection对象的OnAddStream回调接口,返回一个标识MIDI设备A端音视频流的MediaStream对象,MIDI设备B对MediaStream对象进行渲染,MIDI设备B到MIDI设备A的音视频流的传输同样采用上述方法,OnAddStream回调接口是一个事件处理函数,其目的是当远程媒体流MediaStream添加到连接后发送事件,以及当调用SetRemoteDescription后此事件立即被调用而不需要等待SDP交换完成。
[0053] 所述A2中传输给对端进行协商的具体步骤为:
[0054] B1:执行清除动作,避免指针指向无效数据;
[0055] B2:如果当前编码信息不为空,说明不是第一次执行CreateOffer,那么就将当前的编码信息记录存入SDP对象中;
[0056] B3:调用PeerConnection的SetLocalDescription方法进行本地端编码格式的匹配,SetLocalDescription方法接受会话描述中的单个参数,并返回一个承诺,一旦描述被异步更改,该承诺就会实现,直到两个对等方配置达成一致时,协商完成。
[0057] 所述A3中SetRemoteDescription方法具体为调用此方法先设置远程描述,然后生成发送到对端计算机的应答数据包即answer并调用PeerConnection对象的CreateAnswer方法创建一个应答的SDP对象,CreateAnswer方法在WebRTC连接的提供/应答协商期间,为从远程对等方收到的提供创建SDP应答。
[0058] 所述A5中的Candidate数据即MIDI设备端的IP地址信息即本地IP地址、公网IP地址、Relay服务端分配的地址。
[0059] 所述S5具体为捕获HTML5模拟钢琴界面数据传输至云端流媒体服务器,云端流媒体服务器接收音视频流的数据包,以TS或RTP的封包格式经过网络端口外送。
[0060] 工作原理:设备连接:老师或学生的电子钢琴或MIDI设备通过MIDI数据线与电脑设备连接;MIDI信号传输:浏览器通过电子乐器和电脑之间的通信协议传输并接收MIDI信号数据;琴键对应的数值变更颜色;接收到MIDI信号数据后,通过网页脚本语言的键盘按下事件输出琴键对应的音符元素由白色或黑色转成其他颜色的数据,键盘弹起事件输出由其他颜色转回原来的白色或黑色;改用WebRTC协议传输MIDI信号数据;推流至云端流媒体服务器。
[0061] 在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0062] 以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
QQ群二维码
意见反馈