一种录音方法、客户端及终端设备与流程

文档序号:14253489阅读:323来源:国知局
一种录音方法、客户端及终端设备与流程

本发明涉及互联网技术领域,尤其涉及一种录音方法、客户端及终端设备。



背景技术:

随着移动互联网技术的快速发展,诸如智能手机、平板电脑等移动终端设备上的游戏直播业务广受欢迎,收看者除了可以观看到实时的游戏画面,听到游戏声音,还可以听到对游戏的解说声音、玩家的声音等,将游戏声音视为内部声音,将解说声音、玩家声音视为外部环境声音。

目前对于游戏过程中内部声音和外部环境声音的录制,一方面可以借助个人计算机(personalcomputer,pc)端的软件实现,需要使用pc上的麦克风录制内部声音和外部环境声音,该方式需要pc配合才能完成游戏直播任务,实现较为复杂;另一方面可以将游戏直播的代码嵌入到游戏中来实现,即游戏直播的功能算作游戏的一部分,然而嵌入游戏直播的代码将增大游戏的代码体积,导致不需要游戏直播功能的大部分用户却下载了不会使用的功能的代码,且系统稳定性较差。



技术实现要素:

本发明实施例提供了一种录音方法、客户端及终端设备,可以便捷、高效地完成终端设备内部声音和外部环境声音的录制,且系统鲁棒性高。

本发明实施例第一方面提供了一种录音方法,应用于终端设备,所述终端设备运行有直播客户端和多媒体服务进程,所述方法包括:

所述直播客户端与所述多媒体服务进程建立投屏共享连接;

所述直播客户端在接收到所述多媒体服务进程发送的所述终端设备的内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到视频聊天模式;

所述直播客户端通过调用所述音频服务接口将所述内部音频数据的输出通道由投屏共享通道切换到所述终端设备的音频输出设备;

所述直播客户端通过调用所述音频服务接口,利用所述终端设备的音频输入设备录制所述内部音频数据和所述终端设备外部的环境音频数据。

本发明实施例第二方面提供了一种客户端,包括:

建立模块,用于与多媒体服务进程建立投屏共享连接;

接收模块,用于接收所述多媒体服务进程发送的终端设备的内部音频数据;

切换模块,用于在所述接收模块接收到所述内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到视频聊天模式;

所述切换模块,还用于通过调用所述音频服务接口将所述内部音频数据的输出通道由投屏共享通道切换到所述终端设备的音频输出设备;

录制模块,用于通过调用所述音频服务接口,利用所述终端设备的音频输入设备录制所述内部音频数据和所述终端设备外部的环境音频数据。

在一些可行的实施方式中,所述切换模块,具体用于:

在所述接收模块接收到所述内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到音频播放及录制模式;

在等待预设时长之后,通过调用所述音频服务接口将所述当前的音频服务模式切换到视频聊天模式。

在一些可行的实施方式中,所述音频输出设备为扬声器,所述客户端还包括:

输出模块,用于通过调用所述音频服务接口,利用所述扬声器输出所述内部音频数据。

在一些可行的实施方式中,所述客户端还包括:

处理模块,用于对录制的所述内部音频数据进行放大处理,得到处理后的内部音频数据,并将所述处理后的内部音频数据和所述环境音频数据作为录制得到的音频数据。

在一些可行的实施方式中,所述建立模块,具体用于:

发布投屏共享连接服务请求;

在接收到所述多媒体服务进程反馈的所述投屏共享连接服务请求的响应时,与所述多媒体服务进程建立投屏共享连接;

其中,在所述建立模块与所述多媒体服务进程建立投屏共享连接之后,内部音频数据的输出通道由音频输出设备切换到投屏共享通道。

本发明实施例第三方面提供了一种终端设备,包括:处理器以及存储装置;

所述存储装置,用于存储程序指令;

所述处理器,调用所述存储装置中存储的程序指令,用于与多媒体服务进程建立投屏共享连接;在接收到所述多媒体服务进程发送的所述终端设备的内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到视频聊天模式;通过调用所述音频服务接口将所述内部音频数据的输出通道由投屏共享通道切换到所述终端设备的音频输出设备;通过调用所述音频服务接口,利用所述终端设备的音频输入设备录制所述内部音频数据和所述终端设备外部的环境音频数据。

本发明实施例第四方面提供了一种计算机存储介质,其特征在于,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述第一方面所述的方法。

本发明实施例中,直播客户端与多媒体服务进程建立投屏共享连接,在接收到多媒体服务进程发送的终端设备的内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到视频聊天模式,通过调用音频服务接口将内部音频数据的输出通道由投屏共享通道切换到终端设备的音频输出设备,使得内部音频数据可正常输出,再通过调用音频服务接口,利用终端设备的音频输入设备录制内部音频数据和终端设备外部的环境音频数据,从而可以便捷、高效地完成终端设备内部声音和外部环境声音的录制,不需要外部工具的辅助,且系统鲁棒性高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种录音方法的流程示意图;

图2a是本发明实施例提供的一种直播客户端的操作界面示意图;

图2b是本发明实施例提供的另一种直播客户端的操作界面示意图;

图3是本发明实施例提供的另一种录音方法的流程示意图;

图4是本发明实施例提供的一种录音时音频数据的流向示意图;

图5是本发明实施例提供的一种对录音数据进行处理的流程示意图;

图6是本发明实施例提供的一种客户端的结构示意图;

图7是本发明实施例提供的一种终端设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例所描述的终端设备具体可以是指安装ios操作系统的智能手机、平板电脑等移动终端设备。

本发明实施例所描述的终端设备运行有直播客户端和多媒体服务进程,直播客户端用于对终端设备上的游戏等行为的画面、声音进行直播,与终端设备上的其它客户端(如游戏客户端)分属不同的进程,运行稳定,系统鲁棒性高;多媒体服务进程是ios系统中的一个服务进程,负责处理系统所有的音频数据和图像数据。另外,本发明实施例所描述的音频服务接口具体是一个应用程序接口(applicationprogramminginterface,api),是系统提供的编程接口,通过音频服务接口可以改变系统的音频参数,例如音频服务模式、音频数据的输出通道等。

本发明实施例所描述的终端设备的内部音频数据是指终端设备内部输出的音频数据,如游戏声音等;终端设备外部的环境音频数据具体可以是指在直播过程中用户输入的声音(如玩家声音、解说声音等)。

请参阅图1,为本发明实施例提供的一种录音方法的流程示意图。本实施例中所描述的录音方法,包括以下步骤:

101、直播客户端与多媒体服务进程建立投屏共享连接。

具体实现中,在需要对终端设备的屏幕进行分享直播时,例如需要对游戏的画面、游戏的声音、用户输入的声音等进行直播,用户可以启动直播客户端,直播客户端的操作界面可以如图2a和图2b所示,操作界面提供有右下角的开始/结束直播按钮,右侧的启动游戏按钮,直播过程中观看者发布的弹幕的展示区域,以及一些其它的快捷按钮(如底部的静音、私密、弹幕、数据统计等开关按钮),用户点击图2a中的开始直播按钮即可启动直播流程,直播客户端在检测到用户点击开始直播按钮后,与多媒体服务进程建立投屏共享连接,投屏共享是指对终端设备上的游戏等行为的画面、声音进行直播,以分享给他人。

在一些可行的实施方式中,投屏共享连接是指ios系统提供的空中播放airplay连接,直播客户端与多媒体服务进程建立投屏共享连接的具体实现方式可以如图3中的步骤1~5所示,图3中的直播助手即为上述的直播客户端,mediasever即为上述的多媒体服务进程,音频服务即为上述的音频服务接口,直播助手在局域网中发布bonjour服务请求,bonjour服务请求的接口声明所需的是airplay镜像mirror服务,直播助手等待airplaymirror服务注册成功,mediasever在检测到airplaymirror服务,将airplaymirror服务添加到终端设备系统的airplay选项中,直播助手通过调用私有的api向mediasever请求连接到airplay服务,mediasever发起与直播助手的airplay连接,直播助手确认连接成功,至此,mediasever与直播助手之间建立起稳定的传输控制协议(transmissioncontrolprotocol,tcp)连接。

进一步地,如图3中的步骤6所示,连接建立成功后,终端设备系统原本从音频输出设备(如扬声器)输出的内部音频数据转向投屏共享通道(即airplay通道),也即内部音频数据的输出通道由音频输出设备切换到了投屏共享通道,此时终端设备的表现是没有声音输出。

102、所述多媒体服务进程向所述直播客户端发送终端设备的内部音频数据。

相应地,所述直播客户端接收所述内部音频数据。

具体实现中,直播客户端与多媒体服务进程建立投屏共享连接后,用户可以通过图2b所示的直播客户端的操作界面中的启动游戏按钮快速启动预先设定的目标游戏,目标游戏启动后,直播客户端可以自动进入后台运行。如图3中的步骤7和8所示,直播客户端等待接收多媒体服务进程发送的系统声音(即内部音频数据),多媒体服务进程会将终端设备的内部音频数据(如目标游戏的声音)发送给直播客户端,当然,多媒体服务进程也会将终端设备的视频数据(如目标游戏的画面)发送给直播客户端。其中,实时传输协议(real-timetransportprotocol,rtp)是一种网络传输协议,aaceld是一种音频格式。

103、所述直播客户端在接收到所述内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到视频聊天模式。

具体实现中,由于直播客户端与多媒体服务进程建立投屏共享连接后,内部音频数据的输出通道由音频输出设备切换到了投屏共享通道,终端设备没有声音输出,为了保证终端设备能够正常输出内部音频数据,直播客户端在接收到多媒体服务进程发送的内部音频数据时,可以通过调整音频服务模式实现终端设备正常输出内部音频数据。如图3中的步骤9所示,直播客户端在接收到内部音频数据时,通过调用音频服务接口将当前的音频服务模式先切换到音频播放及录制模式(即avaudiosessioncategoryplayandrecordcategory),音频播放及录制模式表示当前需要输出声音且需要进行录音,以此模拟一个即时通信客户端工作的模式,在等待预设时长(例如1秒~2秒)之后,通过再次调用音频服务接口将当前的音频服务模式切换到视频聊天模式(即avaudiosessionmodevideochat),从而让系统认为当前进入了需要视频聊天的场景,在该场景下可以输出声音以及录音。

需要说明的是,将音频服务模式切换到视频聊天模式并不意味着当前需要进行视频聊天,而是向系统声明当前场景中需要使用终端设备的音频输出设备输出声音,以及使用终端设备的音频输入设备进行录音。

104、所述直播客户端通过调用所述音频服务接口将所述内部音频数据的输出通道由投屏共享通道切换到所述终端设备的音频输出设备。

具体实现中,直播客户端在确定视频聊天模式生效时,通过调用音频服务接口改变内部音频数据的输出通道,具体是由投屏共享通道切换到终端设备的音频输出设备。如图3中的步骤10所示,直播客户端调用音频服务接口,利用终端设备的扬声器speaker输出内部音频数据,从而实现终端设备正常输出内部音频数据。

需要说明的是,终端设备的音频输出设备可以包括扬声器、听筒等,由于听筒输出的声音通常比较小,需要人耳贴近听筒才能听到声音,为保证后续录音的正常进行,直播客户端在确定视频聊天模式生效时,需开启免提功能,即表示是通过扬声器(而不是听筒)输出声音。

105、所述直播客户端通过调用所述音频服务接口,利用所述终端设备的音频输入设备录制所述内部音频数据和所述终端设备外部的环境音频数据。

具体实现中,在终端设备能够正常输出内部音频数据后,即可对内部音频数据和终端设备外部的环境音频数据进行录制,如图3中的步骤11所示,直播客户端通过调用所述音频服务接口启动录音功能,可以利用终端设备的音频输入设备(如麦克风)录制通过终端设备的音频输出设备输出的内部音频数据,还可以同时利用音频输入设备录制终端设备外部的环境音频数据,从而完成了在进行游戏等直播时对终端设备内部声音和用户输入声音的录制。

需要说明的是,录音时音频数据的流向具体可以如图4所示,建立airplay连接时,手机系统(具体是多媒体服务进程)将内部音频数据(音频1)和视频数据输入到直播应用程序(application,app)(直播app即直播客户端),然后将音频1的传输中断,开启录音,强制将内部音频数据输出到扬声器,在通过麦克风对扬声器输出的内部音频数据以及环境音频数据进行录制,将录制的内部音频数据以及环境音频数据输入到直播app。

在一些可行的实施方式中,由于直接通过麦克风录制声音,虽然可以录制扬声器输出的声音(即内部音频数据),但是因为终端设备系统本身的声音系统存在的回声抑制功能并且无法关闭该功能,造成录制的扬声器输出的声音偏小,环境声音(即环境音频数据)偏大的问题,为此可以对扬声器输出的声音进行提高声音增益的处理。当然,还可以对录制的内部音频数据进行降噪处理,以滤除其中的杂音。如图5所示,可以对录制的内部音频数据(如脉冲编码调制(pulsecodemodulation,pcm)音频数据)进行放大(例如非线性放大)处理和降噪处理,得到处理后的内部音频数据。

其中,非线性放大的算法可以描述如下:

得到录音pcm数据的数组,数组元数据为double类型,循环遍历每个double数据为item,将item除以36727.0(对应16比特bit编码)之后将得到的值赋给item,将item乘以增益比,即item=(item*gain),gain是增益比(即声音放大系数),对于乘以增益比之后item的值,如果item的值小于0,那么设置item为-1.0,如果item的值大于0且小于1,那么设置item为1.0,对item进行如下运算,得到item=(1.5*item-(0.5*item*item*item))*36727.0,从而实现内部音频数据的非线性放大,并且还可以滤除比较尖锐的音频分量,即提高了音量,也提升了音质。

在一些可行的实施方式中,可以先比较扬声器输出的声音和环境声音的大小,例如可以比较录制的内部音频数据的振幅和环境音频数据的振幅,如果比较结果是录制的内部音频数据的振幅小于环境音频数据的振幅,例如环境音频数据的振幅减去内部音频数据的振幅达到了预设第一振幅阈值,则表明录制的扬声器输出的声音偏小,此时确定需要对内部音频数据进行放大处理。

当然,如果比较结果是录制的环境音频数据的振幅小于内部音频数据的振幅,例如内部音频数据的振幅减去环境音频数据的振幅达到了预设第一振幅阈值,则表明录制的环境声音偏小,此时可以考虑对环境音频数据进行放大处理。

在一些可行的实施方式中,如果比较结果是录制的内部音频数据的振幅与环境音频数据的振幅相差不大,但录制的内部音频数据的振幅和环境音频数据的振幅均小于预设第二振幅阈值,则表明录制的扬声器输出的声音以及环境声音都偏小,此时可以考虑对内部音频数据和环境音频数据均进行放大处理。

当然,也可以对录制的环境音频数据进行降噪处理,以滤除其中的杂音。

在一些可行的实施方式中,上述增益比gain可以根据录制的内部音频数据的振幅与环境音频数据的振幅之间差值的绝对值进行适应性调整,本发明实施例不做限定。

本发明实施例中,直播客户端与多媒体服务进程建立投屏共享连接,多媒体服务进程向直播客户端发送终端设备的内部音频数据,直播客户端在接收到内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到视频聊天模式,通过调用音频服务接口将内部音频数据的输出通道由投屏共享通道切换到终端设备的音频输出设备,保证内部音频数据的正常输出,再通过调用音频服务接口,利用终端设备的音频输入设备录制内部音频数据和终端设备外部的环境音频数据,从而可以便捷、高效地完成终端设备内部声音和外部环境声音的录制,不需要外部工具的辅助,可以随时随地进行游戏直播,并可以保证终端设备内部声音的正常输出,且系统鲁棒性高。

在一些可行的实施方式中,还提供了计算机存储介质,其特征在于,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于执行上述图1以及图3所对应的方法。

请参阅图6,为本发明实施例提供的一种客户端的结构示意图。本实施例中所描述的客户端,包括:

建立模块601,用于与多媒体服务进程建立投屏共享连接;

接收模块602,用于接收所述多媒体服务进程发送的终端设备的内部音频数据;

切换模块603,用于在所述接收模块接收到所述内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到视频聊天模式;

所述切换模块603,还用于通过调用所述音频服务接口将所述内部音频数据的输出通道由投屏共享通道切换到所述终端设备的音频输出设备;

录制模块604,用于通过调用所述音频服务接口,利用所述终端设备的音频输入设备录制所述内部音频数据和所述终端设备外部的环境音频数据。

在一些可行的实施方式中,所述切换模块603,具体用于:

在所述接收模块接收到所述内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到音频播放及录制模式;

在等待预设时长之后,通过调用所述音频服务接口将所述当前的音频服务模式切换到视频聊天模式。

在一些可行的实施方式中,所述音频输出设备为扬声器,所述客户端还包括:

输出模块605,用于通过调用所述音频服务接口,利用所述扬声器输出所述内部音频数据。

在一些可行的实施方式中,所述客户端还包括:

处理模块606,用于对录制的所述内部音频数据进行放大处理,得到处理后的内部音频数据,并将所述处理后的内部音频数据和所述环境音频数据作为录制得到的音频数据。

在一些可行的实施方式中,所述建立模块601,具体用于:

发布投屏共享连接服务请求;

在接收到所述多媒体服务进程反馈的所述投屏共享连接服务请求的响应时,与所述多媒体服务进程建立投屏共享连接;

其中,在所述建立模块601与所述多媒体服务进程建立投屏共享连接之后,内部音频数据的输出通道由音频输出设备切换到投屏共享通道。

可以理解的是,本实施例的客户端的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

本发明实施例中,客户端与多媒体服务进程建立投屏共享连接,在接收到多媒体服务进程发送的终端设备的内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到视频聊天模式,通过调用音频服务接口将内部音频数据的输出通道由投屏共享通道切换到终端设备的音频输出设备,保证内部音频数据的正常输出,再通过调用音频服务接口,利用终端设备的音频输入设备录制内部音频数据和终端设备外部的环境音频数据,从而可以便捷、高效地完成终端设备内部声音和外部环境声音的录制,不需要外部工具的辅助,并可以保证终端设备内部声音的正常输出,且系统鲁棒性高。

请参阅图7,为本发明实施例提供的一种终端设备的结构示意图。本实施例中所描述的终端设备,包括:处理器701、用户接口702、网络接口703及存储装置704。其中,处理器701、用户接口702、网络接口703及存储装置704可通过总线或其他方式连接,本发明实施例以通过总线连接为例。

其中,处理器701(或称cpu(centralprocessingunit,中央处理器))是终端设备的计算核心以及控制核心,其可以解析终端设备内的各类指令以及处理终端设备的各类数据,例如:cpu可以用于解析用户向终端设备所发送的开关机指令,并控制终端设备进行开关机操作;再如:cpu可以在终端设备内部结构之间传输各类交互数据,等等。用户接口702是实现用户与终端设备进行交互和信息交换的媒介,其具体体现可以包括用于输出的显示屏(display)以及用于输入的键盘(keyboard)等等,需要说明的是,此处的键盘既可以为实体键盘,也可以为触屏虚拟键盘,还可以为实体与触屏虚拟相结合的键盘。网络接口703可选的可以包括标准的有线接口、无线接口(如wi-fi、移动通信接口等),受处理器701的控制用于收发数据。存储装置704(memory)是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储装置704既可以包括终端设备的内置存储器,当然也可以包括终端设备所支持的扩展存储器。存储装置704提供存储空间,该存储空间存储了终端设备的操作系统,可包括但不限于:ios系统等等,本发明对此并不作限定。

在本发明实施例中,处理器701通过运行存储装置704中的可执行程序代码:

所述处理器701,用于与多媒体服务进程建立投屏共享连接;在接收到所述多媒体服务进程发送的所述终端设备的内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到视频聊天模式;通过调用所述音频服务接口将所述内部音频数据的输出通道由投屏共享通道切换到所述终端设备的音频输出设备;通过调用所述音频服务接口,利用所述终端设备的音频输入设备录制所述内部音频数据和所述终端设备外部的环境音频数据。

在一些可行的实施方式中,所述处理器701,具体用于:

在接收到所述多媒体服务进程发送的所述终端设备的内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到音频播放及录制模式;

在等待预设时长之后,通过调用所述音频服务接口将所述当前的音频服务模式切换到视频聊天模式。

在一些可行的实施方式中,所述音频输出设备为扬声器,

所述处理器701,还用于通过调用所述音频服务接口,利用所述扬声器输出所述内部音频数据。

在一些可行的实施方式中,所述处理器701,还用于对录制的所述内部音频数据进行放大处理,得到处理后的内部音频数据,并将所述处理后的内部音频数据和所述环境音频数据作为录制得到的音频数据。

在一些可行的实施方式中,所述处理器701,具体用于:

发布投屏共享连接服务请求;

在接收到所述多媒体服务进程反馈的所述投屏共享连接服务请求的响应时,与所述多媒体服务进程建立投屏共享连接;

其中,在所述处理器701与所述多媒体服务进程建立投屏共享连接之后,所述终端设备的内部音频数据的输出通道由所述终端设备的音频输出设备切换到投屏共享通道。

具体实现中,本发明实施例中所描述的处理器701、用户接口702、网络接口703及存储装置704可执行本发明实施例提供的一种录音方法的流程中所描述的实现方式,也可执行本发明实施例提供的一种客户端中所描述的实现方式,在此不再赘述。

本发明实施例中,处理器701与多媒体服务进程建立投屏共享连接,在接收到多媒体服务进程发送的终端设备的内部音频数据时,通过调用音频服务接口将当前的音频服务模式切换到视频聊天模式,通过调用音频服务接口将内部音频数据的输出通道由投屏共享通道切换到终端设备的音频输出设备,保证内部音频数据的正常输出,再通过调用音频服务接口,利用终端设备的音频输入设备录制内部音频数据和终端设备外部的环境音频数据,从而可以便捷、高效地完成终端设备内部声音和外部环境声音的录制,不需要外部工具的辅助,并可以保证终端设备内部声音的正常输出,且系统鲁棒性高。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1