首页> 中国专利> 游戏应用中的语音通信方法及系统

游戏应用中的语音通信方法及系统

摘要

本发明提供一种游戏应用中的语音通信方法及系统,所述方法包括以下步骤:第一游戏客户端接收游戏过程中的语音通信指令,其中,所述语音通信指令包括接收语音数据的游戏客户端的通信标识;第一游戏客户端根据所述语音通信指令进行语音录制;第一游戏客户端对语音录制获得的语音数据进行编码压缩处理,并根据所述通信标识将编码压缩处理后的语音数据发送至对应的游戏客户端;当第二游戏客户端检测到有语音数据发送过来时,在该第二游戏客户端的操作界面上显示相应的消息提示;第二游戏客户端接收所述消息提示的触发指令,根据所述触发指令获取相应的语音数据;第二游戏客户端播放所述语音数据。本发明的方法及系统减少了游戏过程中的通信花费时间。

著录项

  • 公开/公告号CN104052846A

    专利类型发明专利

  • 公开/公告日2014-09-17

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;

    申请/专利号CN201410310445.X

  • 发明设计人 马亮;贺志强;罗春华;张文;

    申请日2014-06-30

  • 分类号H04M1/253;H04L29/06;H04L12/58;

  • 代理机构广州华进联合专利商标代理有限公司;

  • 代理人王茹

  • 地址 518000 广东省深圳市福田区振兴路赛格科技园2栋东403室

  • 入库时间 2023-12-17 01:39:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-22

    授权

    授权

  • 2014-10-22

    实质审查的生效 IPC(主分类):H04M1/253 申请日:20140630

    实质审查的生效

  • 2014-09-17

    公开

    公开

说明书

技术领域

本发明涉及即时通信技术领域,特别是涉及一种游戏应用中的语音通信方 法以及一种游戏应用中的语音通信系统。

背景技术

随着移动终端的硬件处理能力不断增强,基于移动终端的游戏应用越来越 流行。当游戏与社交进行碰撞,就形成了一种新的玩家之间的互动需求:聊天。

随着移动终端游戏的发展,玩家在游戏的过程中进行交流的意愿越来越强。 目前在移动终端游戏中,尤其是在手机棋牌类游戏中,都是通过输入文字和图 片表情来进行聊天通信的。然而,传统通过在移动终端上敲打文字从而实现双 方通信的方式,由于大多数人输入文字的速度比较慢,因此需要花费较长的时 间才能完成一次通信,通信效率比较低。

发明内容

基于此,本发明提供一种游戏应用中的语音通信方法及系统,能够减少游 戏过程中的通信花费时间。

为实现上述目的,本发明采用如下的技术方案:

一种游戏应用中的语音通信方法,包括以下步骤:

接收游戏过程中的语音通信指令;其中,所述语音通信指令包括接收语音 数据的游戏客户端的通信标识;

根据所述语音通信指令进行语音录制;

对语音录制获得的语音数据进行编码压缩处理,并根据所述通信标识将编 码压缩处理后的语音数据发送至对应的游戏客户端。

一种游戏应用中的语音通信方法,包括以下步骤:

当检测到有语音数据发送给游戏客户端时,在该游戏客户端的操作界面上 显示相应的消息提示;

接收所述消息提示的触发指令,根据所述触发指令获取相应的语音数据;

播放所述语音数据。

一种游戏应用中的语音通信方法,包括以下步骤:

第一游戏客户端接收游戏过程中的语音通信指令,其中,所述语音通信指 令包括接收语音数据的游戏客户端的通信标识;

第一游戏客户端根据所述语音通信指令进行语音录制;

第一游戏客户端对语音录制获得的语音数据进行编码压缩处理,并根据所 述通信标识将编码压缩处理后的语音数据发送至对应的游戏客户端;

当第二游戏客户端检测到有语音数据发送过来时,在该第二游戏客户端的 操作界面上显示相应的消息提示;

第二游戏客户端接收所述消息提示的触发指令,根据所述触发指令获取相 应的语音数据;

第二游戏客户端播放所述语音数据。

一种游戏应用中的语音通信系统,包括第一游戏客户端,所述第一游戏客 户端包括:

通信指令接收模块,用于接收游戏过程中的语音通信指令;其中,所述语 音通信指令包括接收语音数据的游戏客户端的通信标识;

语音录制模块,用于根据所述语音通信指令进行语音录制;

编码传输模块,用于对语音录制获得的语音数据进行编码压缩处理,并根 据所述通信标识将编码压缩处理后的语音数据发送至对应的游戏客户端。

一种游戏应用中的语音通信系统,包括第二游戏客户端,所述第二游戏客 户端包括:

消息提示显示模块,用于当检测到有语音数据发送给第二游戏客户端时, 在该第二游戏客户端的操作界面上显示相应的消息提示;

语音数据下载模块,用于接收所述消息提示的触发指令,根据所述触发指 令获取相应的语音数据;

语音播放模块,用于播放所述语音数据。

一种游戏应用中的语音通信系统,包括第一游戏客户端以及第二游戏客户 端;

所述第一游戏客户端包括:

通信指令接收模块,用于接收游戏过程中的语音通信指令;其中,所述语 音通信指令包括接收语音数据的游戏客户端的通信标识;

语音录制模块,用于根据所述语音通信指令进行语音录制;

编码传输模块,用于对语音录制获得的语音数据进行编码压缩处理,并根 据所述通信标识将编码压缩处理后的语音数据发送至对应的游戏客户端;

所述第二游戏客户端包括:

消息提示显示模块,用于当检测到有语音数据发送给第二游戏客户端时, 在该第二游戏客户端的操作界面上显示相应的消息提示;

语音数据下载模块,用于接收所述消息提示的触发指令,根据所述触发指 令获取相应的语音数据;

语音播放模块,用于播放所述语音数据。

由以上方案可以看出,本发明的一种游戏应用中的语音通信方法及系统, 当需要在游戏过程中进行通信时,根据语音通信指令进行语音录制,并进行编 码压缩处理,然后根据通信标识将编码压缩处理后的语音数据发送至对应的游 戏客户端以进行语音播放。本发明避免了在游戏过程中采用文字输入进行通信 的方式,使用较少的网络流量、通过语音输入的方式在游戏过程中实现通信的 目的,在相同时间内能够输入的信息更多、输入速度更快,极大减少了游戏过 程中的通信花费时间,提高了游戏过程中的通信效率。

附图说明

图1为本发明实施例一中的一种游戏应用中的语音通信方法的流程示意图;

图2为本发明实施例中的语音录制机制示意图;

图3为本发明实施例中AMR格式文件示意图;

图4为本发明实施例二中的一种游戏应用中的语音通信方法的流程示意图;

图5为本发明实施例中的语音播放机制示意图;

图6为本发明实施例三中的一种游戏应用中的语音通信方法的流程示意图;

图7为本发明实施例中的一种游戏应用中的语音通信系统结构示意图;

图8为本发明另一实施例中的一种游戏应用中的语音通信系统结构示意图;

图9为能实现本发明实施例的一个计算机系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。

除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单 个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中 的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说 明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次 序是可以调整的。

实施例一

图1示出了本发明的一种游戏应用中的语音通信方法实施例一的流程示意 图。在该实施例一中,是以发送端的处理过程为例进行说明。

如图1所示,在该实施例一中,发送端的处理过程包括以下步骤:

步骤S101,接收游戏过程中的语音通信指令;其中,所述语音通信指令包 括接收语音数据的游戏客户端的通信标识。

步骤S102,根据所述语音通信指令进行语音录制。

步骤S103,对语音录制获得的语音数据进行编码压缩处理,并根据所述通 信标识将编码压缩处理后的语音数据发送至对应的游戏客户端。

传统的在游戏应用中通信的方法,当接收到通信指令时,会弹出一个文本 对话框,在该文本对话框中采集用户所输入的文字或表情,然后发送给当前参 与游戏的其他用户;而本发明实施例中则是在接收到通信指令后弹出一个语音 对话框,通过录制语音来实现双方或多方通信。

需要说明的是,在进行语音录制之前,需要先创建语音通道,即准备语音 录制所需要的设备上下文环境,例如设置语音通道采样频率、设置录制语音通 道以及每个通道占用数据位数等,这些环境变量设置好后,就可以进行语音录 制了。本发明实施例中,采样频率值sampleRate(码率)可以设置为44100,声道 channels(通道)值可以设置为1,每个声道传输的字节数bitperchannel(通道位 数)值可以设置为16。

具体的,在其中一个实施例中,所述步骤S102中进行语音录制的过程具体 可以包括如下步骤:

步骤S1021,实时检测游戏客户端当前的内存状况,根据所述内存状况创建 若干个语音录制缓冲区。

本发明实施例中的缓冲调用机制与现有技术相比,区别在于本发明实施例 中的缓冲区个数不是一个静态值,而是可以根据游戏客户端性能的不同或者游 戏客户端当前使用内存大小来动态调整。例如,在创建语音录制缓冲区时,当 读取到的游戏客户端内存低于某个阀值时,则所创建的缓冲区个数就会动态减 少。比如内存低于100M,则不会创建超过3个的缓冲区,当高于100M时则可 调整到6个,这样做的优点是能够减少程序切换到后台被系统杀死的概率。以 Android手机为例,在android系统中,如果一个程序在手机内存很低的情况下, 同时又申请很大的缓冲区,则程序切到后台后就会被杀掉,以释放内存给其它 应用使用。

步骤S1022,根据所述通信指令打开麦克风或其它语音录制设备进行语音录 制,并将录制的语音数据存入所述语音录制缓冲区中。

在本发明实施例中,进行语音录制所得到的语音数据可以为PCM(Pulse  Code Modulation,脉冲编码调制)数据。

步骤S1023,当检测到一个语音录制缓冲区写满后,将该已满缓冲区的语音 数据写入到本地磁盘上,并继续往下一个语音录制缓冲区写入语音数据。

传统的方法中,缓冲区中的数据大都选择缓存在内存中,而本发明实施例 中的语音数据则缓存到本地磁盘上,这样就算录制过程中出现程序闪退,也不 会发生数据丢失的现象。

需要说明的是,当本发明实施例中的游戏客户端为手机时,所述本地磁盘 即为SD卡(Secure Digital Memory Card,安全数码卡)。

步骤S1024,当检测到所述已满缓冲区中的所有语音数据均已写入到本地磁 盘后,回收所述已满缓冲区以用于继续接收新的语音数据,直到语音录制完毕。

如图2所示,在其中一个实施例中,通过创建三个语音录制缓冲区来描述 本发明实施例中的语音录制机制:

1)创建好三个语音录制缓冲区后,紧接着打开Microphone(麦克风)开启系 统录制功能,当第一个缓冲区写满后,通过回调的形式通知到上层应用层,然 后将缓冲区数据存储到本地磁盘上;

2)一个缓冲写满后会继续往剩下两个缓冲区中写入数据;

3)若上层已将第一个缓冲区数据处理完毕并写回到本地磁盘后,回调结束, 第一个缓冲区被系统回收,可以继续用于接收数据;

4)重复以上三个步骤,直到用户的语音数据录制完毕为止。

需要说明的是,本发明实施例中在录制语音时,有以下几点注意事项:

1)游戏内点击语音录制按钮,则开始录制语音;

2)当检测到语音过短时不发送,当用户短时间内什么也没有说(误点)时 也不发送;

3)限制语音录制的最长时间为5秒;之所以限制在5秒,是因为5秒钟录 制数据量不会超过1K,传输到服务器对用户的流量浪费少。如果语音录制时间 过长,会有较高的传输成本,同时如果语音录制时间过短,又不足以让玩家把 意思表达完整。综合之后采取一个中间值即5秒钟;

4)录制语音的时候屏蔽其它游戏中的音效;

5)录制语音时,音量的大小需要以图形化表示;

6)录制语音时,录制的时间有表示;

7)录制语音时,需要边录制边上传。

另外,在其中一个实施例中,所述步骤S103对语音录制获得的语音数据进 行编码压缩处理的过程具体可以包括如下步骤:

步骤S1031,在所述语音数据的开头和结尾添加设定的编码,作为传输开始 和结束的标记。

步骤S1032,获取所述语音数据的采样频率值、通道值以及通道位数值。

步骤S1033,根据所述标记、采样频率值、通道值以及通道位数值对所述语 音数据进行AMR-NB(Adaptive Multi-Rate Narrow Band,窄带自适应多速率) 格式的编码压缩,得到AMR-NB数据,并将该AMR-NB数据以文件的形式存 储在本地磁盘。

AMR编码方式可以通过AMR数据中每帧的帧头来区分。码率越高,质量 越好。AMR一帧为20毫秒,如果是AMR12.2,每帧占用12.2*1000/50/8=30.5 字节,加上帧头1字节,则每帧圆整为32字节。AMR12.2相对于AMR5.15大 小相差两倍。

AMR文件格式为:

magic 帧1 帧2 帧3

如图3所示是一个示例,AMR的magic number(魔法数:一些无实际含义的 随机数)为:#!AMR\n。所有的AMR文件都是由这六个字节打头。AMR帧包括 帧头和帧内容。帧头表明该帧的编码方式和大小。AMR-NB有8种编码方式, 如下表所示:

  规格 比特率(kbps) 音频帧大小(字节) 帧头(字节) 0 AMR4.75 4.75 13 04 00000100 1 AMR5.15 5.15 14 0C 00001100 2 AMR5.9 5.9 16 14 00010100 3 AMR6.7 6.7 18 1C 00011100 4 AMR7.4 7.4 20 24 00100100 5 AMR7.95 7.95 21 2C 00101100 6 AMR10.2 10.2 27 34 00110100 7 AMR12.2 12.2 32 3C 00111100

例如,如果AMR文件中的帧头为3C,那么可以知道所采用的编码方式为 AMR12.2,帧大小为32字节,其中语音数据31字节。在其中一个实施例中, 可以根据用户网络情况来自行决定低码率还是高码率的AMR,并且使用AMR 编码C代码进行转换,这样码率可自行控制。

AMR编码分为AMR-NB和AMR-WB(Adaptive Multi-Rate Wide Band,宽 带自适应多速率)两种。二者的区别在于AMR-NB的语音带宽范围为300- 3400Hz、8KHz采样,AMR-WB的语音带宽范围为50-7000Hz、16KHz采样。 本发明实施例中采用AMR-NB编码,因为AMR-NB的数据包量要比AMR-WB 更省空间。

AMR-NB采用8k的采样率,AMR一帧的长度是0.02s。假如PCM的采样 率也是8k,单通道16位,那么0.02s的PCM数据量为:0.02*8000*16/8=320 字节。可见,PCM数据是AMR格式的10倍大小,即本发明实施例中的压缩率 可以达到10:1,采用本发明实施例中的AMR格式数据进行网络传输,有效地 节省了网络流量。

作为一个较好的实施例,为了进一步的节省网络流量,在所述步骤S1033 将语音数据编码成AMR-NB数据之后,还可以包括如下步骤:

判断所述AMR-NB数据的容量是否大于设定阈值;

若是,则对所述AMR-NB数据进行JCE(Java Cryptography Extension,Java 加密扩展)格式的二次编码压缩,得到JCE数据,并根据所述通信标识将该JCE 数据发送至对应的游戏客户端。

JCE是一种自定义协议格式,它进行协议结构、远程对象接口的定义。JCE 文件以.jce为扩展名,其能自动生成协议编解码代码 (c/c++,java,kjava,symbian,mtk),对于结构定义,可以支持扩展字段,即可以增加 字段而不影响原有结构的解析(协议扩展支持)。

JCE每一个数据由两个部分组成:头信息、实际数据。而其中头信息又可以 包括如下表所示的几个部分:

其中,上表中的Type表示类型,用4个二进制位表示,取值范围是0~15, 用来标识该数据的类型,不同类型的数据,其后紧跟着的实际数据的长度和格 式都是不一样的。另外Tag由Tag1和Tag2一起表示,取值范围是0~255,即 该数据在结构中的字段ID,用来区分不同的字段。需要说明的是,上表中的Tag 2是可选的,当Tag的值不超过14时,只需要用Tag1就可以表示;当Tag的 值超过14而小于256时,Tag1固定为15,而用Tag2表示Tag的值。Tag不允 许大于255。

经过数据测算,本发明实施例中采用JCE格式进行二次压缩处理后,可以 比原先的编码格式减少20%的数据传输量,从而进一步节省了网络数据流量, 提高了成功率,并且实现效率高,算法复杂度低。

实施例二

图4示出了本发明的一种游戏应用中的语音通信方法实施例二的流程示意 图。在该实施例二中,是以接收端的处理过程为例进行说明。

如图4所示,在该实施例二中,接收端的处理过程包括以下步骤:

步骤S401,当检测到有语音数据发送给游戏客户端时,在该游戏客户端的 操作界面上显示相应的消息提示。

步骤S402,接收所述消息提示的触发指令,根据所述触发指令获取相应的 语音数据。

步骤S403,播放所述语音数据。

在其中一个实施例中,获取所述语音数据之后、播放所述语音数据之前, 还可以包括如下步骤:

将所述语音数据存储到游戏客户端的本地磁盘,并判断是否需要对所述语 音数据进行解码处理;

若是,则对所述语音数据进行解码处理。

因为不同的游戏客户端平台,所支持播放的音频格式是不相同的。如 Android手机可直接播放AMR格式数据,而IOS6.0只支持PCM格式音频据, 因此需要根据游戏客户端所能支持播放的音频格式来判断是否需要进行解码处 理。对于游戏客户端既支持AMR又支持PCM的则无需解码,直接播放;对于 游戏客户端不支持AMR格式的,则需要解码成PCM数据再进行播放。

作为一个较好的实施例,所述步骤S403中播放语音数据的过程具体可以包 括如下步骤:

步骤S4031,实时检测游戏客户端当前的内存状况,根据所述内存状况创建 若干个语音播放缓冲区;

步骤S4032,将所述游戏客户端的本地磁盘上的语音数据加载到所述语音播 放缓冲区,并在检测到所有语音播放缓冲区都写满后,将所述语音播放缓冲区 中的语音数据传输到扬声器或其他语音播放设备进行语音播放;

步骤S4033,当检测到一个语音播放缓冲区中的语音数据被播放完毕后,播 放下一个语音播放缓冲区中的语音数据,直到所有语音播放缓冲区中的语音数 据被播放完毕;

步骤S4034,当检测到所有语音播放缓冲区中的语音数据都被播放完毕后进 行回调,并进行下一次的语音数据写入,直到所有语音数据被播放完毕。

如图5所示,在其中一个实施例中,通过创建三个语音播放缓冲区来描述 本发明实施例中的语音播放机制:

1)将存储在本地磁盘上的语音数据加载到创建好的缓冲区中来,当三个缓 冲区都被写满后,才能将该缓冲区语音数据传输给扬声器进行播放;

2)当一个缓冲区中的语音数据被播放完毕后,紧跟着会处理第二个缓冲区 数据,直到三个缓冲区中的数据被处理完毕;

3)每次处理完三个缓冲区数据后,会进行回调,进行下一次的缓冲区数据 写入;

4)重复以上三个步骤,直到所有语音数据播放完毕。

以棋牌游戏为例,本发明实施例中在接收语音数据并进行语音播放时,需 要注意以下几点:

1)牌局用户接收语音消息,出现来语音的消息提示,wifi环境下可以自动 下载语音数据,非wifi环境下则不自动下载。即本发明实施例中,先出现有语 音的消息提示同时进行wifi环境下载,不是下载完后出现消息提示;

2)点击播放时如果语音数据没有下载,则播放时边下载边播放,而不是等 下载完了保存一定的缓存量后才开始语音播放;

3)语音播放时如果因为网络等问题导致还有语音数据没有下载完,并且之 前下载的已经播放完毕,则暂停播放并等待重试下载,重试两次不成功后则提 示“请检查您的网络是否正常”;

4)当检测到有语音数据发送过来时通过一个特殊的声音进行提示;

5)消息提示5秒后或者点击播放后自动消失;

6)语音的长短可以用数字形式进行展示;

7)播放语音时,自动检测游戏客户端与人耳之间的距离,当距离较远时自 动使用扬声器进行语音播放,较近时则可以使用听筒。

8)播放语音时,需要进行音量还原,展示某一时刻录制的音量。

在其中一个实施例中,可以采用如下公式来进行音量还原:

{Σj=1n[(Vj1)2+(Vj2)2....+(Vjn)2]/2}/4096;

式中,Vj1、Vj2.....Vjn表示每一个语音帧的语音数据。采用上述的音量还 原算法,通过计算出一个百分比的音量值,能够更加精确的展示出某一时刻录 制的音量。

实施例三

结合上述实施例一、实施例二中的方案,图6中示出了本发明的游戏应用 中的语音通信方法实施例三的流程示意图。在本实施例中,是以语音通信时发 送端与接收端之间的整体流程为例进行说明,这种说明并不用以对本发明方案 构成限定。

如图6所示,在该实施例三中,本发明的一种游戏应用中的语音通信方法 包括以下步骤:

步骤S601,第一游戏客户端(即发送端)接收游戏过程中的语音通信指令, 其中,所述语音通信指令包括接收语音数据的游戏客户端的通信标识;

步骤S602,第一游戏客户端根据所述语音通信指令进行语音录制;

步骤S603,第一游戏客户端对语音录制获得的语音数据进行编码压缩处理, 并根据所述通信标识将编码压缩处理后的语音数据发送至对应的游戏客户端;

步骤S604,当第二游戏客户端(即接收端)检测到有语音数据发送过来时, 在该第二游戏客户端的操作界面上显示相应的消息提示;

步骤S605,第二游戏客户端接收所述消息提示的触发指令,根据所述触发 指令获取相应的语音数据;

步骤S606,第二游戏客户端播放所述语音数据。

在其中一个实施例中,所述步骤S603将编码压缩处理后的语音数据发送至 对应的游戏客户端的过程具体可以包括如下步骤:第一游戏客户端将编码压缩 处理后的语音数据发送至服务器,并由所述服务器来将所述语音数据转发到对 应的游戏客户端。

本发明实施例的方案中,可以采用MVC(Model View Controller,模型-视 图-控制器)设计架构,将语音录制播放、语音编解码进行分离,实现效率高, 算法复杂度低。并且可以通过平台接口层和应用框架层屏蔽掉底层的差异,为 上层提供统一的应用公共模块,这样一来无需知道语音录制是跑在Android还是 IOS平台,因为底层已经进行了统一的实现,可同时传输给多个移动终端、可跨 平台运行、一套解决方案覆盖多个平台,一种架构设计方式实现了跨平台一体 化解决方案。与传统的各个平台分别实现语音通信的方案相比,本发明实施例 的方案流程更为简化。采用本发明实施例中的语音录制框架可覆盖iOS、 Android、Symbian、Win32、WP7、Bada、iMac等多个平台。同一个项目只需 一个开发团队开发一次,即能输出上述各平台版本。

本实施例中的一种游戏应用中的语音通信方法的其它技术特征与本发明实 施例一、实施例二相同,此处不予赘述。

根据上述游戏应用中的语音通信方法,本发明实施例还提供一种游戏应用 中的语音通信系统。本发明的一种游戏应用中的语音通信系统,可以只包括发 送端、接收端中的一个,也可以同时包括发送端和接收端。为方便说明,图7 中以结合发送端和接收端为例,示出了本发明的一种游戏应用中的语音通信系 统实施例的结构示意图。

如图7所示,本实施例中的一种游戏应用中的语音通信系统,包括第一游 戏客户端10,该第一游戏客户端即为发送端;具体的,所述第一游戏客户端10 包括:

通信指令接收模块101,用于接收游戏过程中的语音通信指令;其中,所述 语音通信指令包括接收语音数据的游戏客户端的通信标识;

语音录制模块102,用于根据所述语音通信指令进行语音录制;

编码传输模块103,用于对语音录制获得的语音数据进行编码压缩处理,并 根据所述通信标识将编码压缩处理后的语音数据发送至对应的游戏客户端。

在其中一个实施例中,所述语音录制模块可以包括:

语音录制缓冲区创建模块,用于实时检测第一游戏客户端当前的内存状况, 根据所述内存状况创建若干个语音录制缓冲区;

缓冲区写入模块,用于根据所述通信指令打开麦克风进行语音录制,并将 录制的语音数据存入所述语音录制缓冲区中;

本地磁盘写入模块,用于当检测到一个语音录制缓冲区写满后,将该已满 缓冲区的语音数据写入到本地磁盘上,并继续往下一个语音录制缓冲区写入语 音数据;

回收模块,用于当检测到所述已满缓冲区中的所有语音数据均已写入到本 地磁盘后,回收所述已满缓冲区以用于继续接收新的语音数据,直到语音录制 完毕。

在其中一个实施例中,所述编码传输模块可以包括:

标记模块,用于在所述语音数据的开头和结尾添加设定的编码,作为传输 开始和结束的标记;

获取模块,用于获取所述语音数据的采样频率值、通道值以及通道位数值;

AMR编码模块,用于根据所述标记、采样频率值、通道值以及通道位数值 对所述语音数据进行AMR-NB格式的编码压缩,得到AMR-NB数据,并将该 AMR-NB数据以文件的形式存储在本地磁盘。

在其中一个实施例中,所述编码传输模块还可以包括:

第一判断模块,用于判断所述AMR-NB数据的容量是否大于设定阈值;

JCE编码与发送模块,用于在所述第一判断模块的判断结果为是的情况下, 对所述AMR-NB数据进行JCE格式的二次编码压缩,得到JCE数据,并根据所 述通信标识将该JCE数据发送至对应的游戏客户端。

另外,本实施例中的一种游戏应用中的语音通信系统,还可以包括第二游 戏客户端,该第二游戏客户端即为接收端;如图7所示,所述第二游戏客户端 20包括:

消息提示显示模块201,用于当检测到有语音数据发送给第二游戏客户端 时,在该第二游戏客户端的操作界面上显示相应的消息提示;

语音数据下载模块202,用于接收所述消息提示的触发指令,根据所述触发 指令获取相应的语音数据;

语音播放模块203,用于播放所述语音数据。

在其中一个实施例中,所述第二游戏客户端还可以包括:

第二判断模块,用于将所述语音数据存储到第二游戏客户端的本地磁盘, 并判断是否需要对所述语音数据进行解码处理;

解码模块,用于在所述第二判断模块的判断结果为是的情况下,对所述语 音数据进行解码处理。

在其中一个实施例中,所述语音播放模块可以包括:

语音播放缓冲区创建模块,用于实时检测第二游戏客户端当前的内存状况, 根据所述内存状况创建若干个语音播放缓冲区;

加载传输模块,用于将所述第二游戏客户端的本地磁盘上的语音数据加载 到所述语音播放缓冲区,并在检测到所有语音播放缓冲区都写满后,将所述语 音播放缓冲区中的语音数据传输到扬声器进行语音播放;

顺序播放模块,用于当检测到一个语音播放缓冲区中的语音数据被播放完 毕后,播放下一个语音播放缓冲区中的语音数据,直到所有语音播放缓冲区中 的语音数据被播放完毕;

回调模块,用于当检测到所有语音播放缓冲区中的语音数据都被播放完毕 后进行回调,并进行下一次的语音数据写入,直到所有语音数据被播放完毕。

在其中一个实施例中,如图8所示,本发明实施例的一种游戏应用中的语 音通信系统,还可以包括服务器30;

所述服务器30用于接收第一游戏客户端10所发送过来的语音数据,并将 该语音数据转发到对应的第二游戏客户端20。

上述一种游戏应用中的语音通信系统的其它技术特征与本发明实施例的一 种游戏应用中的语音通信方法相同,此处不予赘述。

图9为能实现本发明实施例的一个计算机系统1000的模块图。该计算机系 统1000只是一个适用于本发明的计算机环境的示例,不能认为是提出了对本发 明的使用范围的任何限制。计算机系统1000也不能解释为需要依赖于或具有图 示的示例性的计算机系统1000中的一个或多个部件的组合。

图9中示出的计算机系统1000是一个适合用于本发明的计算机系统的例 子。具有不同子系统配置的其它架构也可以使用。例如有大众所熟知的笔记本、 个人数字助理、智能电话、平板电脑、便携式媒体播放器、机顶盒等类似设备 可以适用于本发明的一些实施例。但不限于以上所列举的设备。

如图9所示,计算机系统1000包括处理器1010、存储器1020和系统总线 1022。包括存储器1020和处理器1010在内的各种系统组件连接到系统总线1022 上。处理器1010是一个用来通过计算机系统中基本的算术和逻辑运算来执行计 算机程序指令的硬件。存储器1020是一个用于临时或永久性存储计算程序或数 据(例如,程序状态信息)的物理设备。系统总线1020可以为以下几种类型的 总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。 处理器1010和存储器1020可以通过系统总线1022进行数据通信。其中存储器 1020包括只读存储器(ROM)或闪存(图中都未示出),以及随机存取存储器 (RAM),RAM通常是指加载了操作系统和应用程序的主存储器。

计算机系统1000还包括显示接口1030(例如,图形处理单元)、显示设备 1040(例如,液晶显示器)、音频接口1050(例如,声卡)以及音频设备1060 (例如,扬声器)。显示设备1040和音频设备1060是用于体验多媒体内容的媒 体设备。

计算机系统1000一般包括一个存储设备1070。存储设备1070可以从多种 计算机可读介质中选择,计算机可读介质是指可以通过计算机系统1000访问的 任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包 括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或 其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储 所需信息并可由计算机系统1000访问的任何其它介质。

计算机系统1000还包括输入装置1080和输入接口1090(例如,IO控制器)。 用户可以通过输入装置1080,如键盘、鼠标、显示装置1040上的触摸面板设备, 输入指令和信息到计算机系统1000中。输入装置1080通常是通过输入接口1090 连接到系统总线1022上的,但也可以通过其它接口或总线结构相连接,如通用 串行总线(USB)。

计算机系统1000可在网络环境中与一个或者多个网络设备进行逻辑连接。 网络设备可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公 共网络节点。计算机系统1000通过局域网(LAN)接口1100或者移动通信单 元1110与网络设备相连接。局域网(LAN)是指在有限区域内,例如家庭、学 校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi 和双绞线布线以太网是最常用的构建局域网的两种技术。WiFi是一种能使计算 机系统1000间交换数据或通过无线电波连接到无线网络的技术。移动通信单元 1110能在一个广阔的地理区域内移动的同时通过无线电通信线路接听和拨打电 话。除了通话以外,移动通信单元1110也支持在提供移动数据服务的2G,3G 或4G蜂窝通信系统中进行互联网访问。

应当指出的是,其它包括比计算机系统1000更多或更少的子系统的计算机 系统也能适用于发明。例如,计算机系统1000可以包括能在短距离内交换数据 的蓝牙单元,用于照相的图像传感器,以及用于测量加速度的加速计。

如上面详细描述的,适用于本发明的计算机系统1000能执行游戏应用中的 语音通信方法的指定操作。计算机系统1000通过处理器1010运行在计算机可 读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备 1070或者通过局域网接口1100从另一设备读入到存储器1020中。存储在存储 器1020中的软件指令使得处理器1010执行上述的游戏应用中的语音通信方法。 此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此, 实现本发明并不限于任何特定硬件电路和软件的组合

通过以上方案可以看出,本发明的一种游戏应用中的语音通信方法及系统, 当需要在游戏过程中进行通信时,根据语音通信指令进行语音录制,并进行编 码压缩处理,然后根据通信标识将编码压缩处理后的语音数据发送至对应的游 戏客户端以进行语音播放。本发明避免了在游戏过程中采用文字输入进行通信 的方式,使用较少的网络流量、通过语音输入的方式在游戏过程中实现通信的 目的,在相同时间内能够输入的信息更多、输入速度更快,极大减少了游戏过 程中的通信花费时间,提高了游戏过程中的通信效率。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细, 但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域 的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和 改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附 权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号