实时语音趣味变声,大叔变声“妙音娘子”Get一下
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
游戏社交化是近年来游戏行业发展的重要趋势,如何提高游戏的社交属性已成为各大游戏厂商游戏策划的重要组成部分。游戏中玩家的互动形式也不再止于语音聊天,有了更为高阶的需求,比如:玩家在“吃鸡”的时候,会通过外带的声卡或者其他的技术手段进行“变声“。大叔变萝莉,萌妹变宅男,这些都让游戏里的语音互动变得更具娱乐性。
在这股社交娱乐大浪潮下,腾讯云游戏多媒体引擎GME创新性地引入了变声的玩法,让变声成为了游戏内置的功能。只要接入GME的SDK,游戏研发厂商就可以提供给玩家更加丰富有趣的游戏内语音体验,让玩家在不借助任何外部设备的情况下,实现抠脚大汉变声萝莉、变声口吃的的有趣玩法。
目前,腾讯云GME的这个变声功能已应用在手机QQ上,被亿万QQ用户所使用。用户在拨通QQ电话或者发送语音消息时,选择 “变声”,就可以在“萝莉”、“歪果仁”、“熊孩子”等数十种特色音效中自由切换。
实测效果: https://v.qq.com/x/page/p0728cduuy3.html
年轻人追求个性,喜欢猎奇。手机QQ这个变声功能帮助用户展现自己的“多面人格”,让聊天更有趣,广受用户好评。

用户使用反馈
变声的原理,即是通过改变人声的音调、音色,使输出声音在感官上与原始声音不同。人耳分辨人声,是通过音色和音调两个维度去做区分。日常所说的男中音、男高音,就是音调不同;音调一致的情况下,我们依然能通过音色去区分人声。变声器,正是借助对声音音色和音调的双重复合改变,实现输出声音的改变。

在音频后处理领域,“变声”是一个相对常见的功能,语音消息的变声不难,但是在QQ电话中实时变声,这可是个大挑战。要保证在用户无感的超低延时下对人声进行特殊处理,怎么办呢?
为了降低时延,技术团队想了不少办法:数据采集阶段,用自研前处理替换系统的前处理,把时延降低了30ms;处理过程中,支持更少长度的处理(常规变声处理必须定长20ms处理,这20ms等待时间也会体现在总时延上面),能将延时控制在30ms以内。而人耳不会感受的最大延时是40ms,这个延时基本不被用户所感知。最终实现了用户在QQ里体验到的实时语音变声功能。
“趣味变声”也集成到了腾讯云游戏多媒体引擎GME产品能力中。只要在游戏中集成GME的SDK,就能实现QQ通话里的趣味变声玩法,丰富游戏玩家的社交体验,让游戏玩家爱上沟通,通过社交属性有效地提升游戏热度。
腾讯云游戏多媒体引擎 GME(Gaming Multimedia Engine)提供一站式游戏语音解决方案。针对不同游戏场景深度优化,覆盖休闲社交类、MOBA 类、MMORPG、FPS 等多种游戏类型。支持多人实时语音、3D位置语音、语音消息和语音转文本等功能。功能完备,接入门槛低,一个 SDK 即可满足多样化的游戏内语音需求。
问答
相关阅读
此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1165382?fromSource=waitui
欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~
海量技术实践经验,尽在云加社区!
实时语音趣味变声,大叔变声“妙音娘子”Get一下的更多相关文章
- 挑战中英实时语音翻译——Skype Translator 中文预览版登陆中国
Translator 中文预览版登陆中国" title="挑战中英实时语音翻译--Skype Translator 中文预览版登陆中国"> 今天,我们正式宣布在中国 ...
- scala-协变、逆变、上界、下界
scala-协变.逆变.上界.下界 当我们定义一个协变类型List[A+]时,List[Child]可以是List[Parent]的子类型. 当我们定义一个逆变类型List[-A]时,List[Chi ...
- # li鼠标移入移出,点击,变背景色,变checkbox选中状态
移入移出背景色改变和点击背景色改变,两者是否相互覆盖? 若移出背景色恢复,影响点击事件的背景色改变,会产生效果为: 点击时,背景色改变,并且checkbox选中 鼠标移开后,checkbox仍选中,但 ...
- 用css 添加手状样式,鼠标移上去变小手,变小手
用css 添加手状样式,鼠标移上去变小手,变小手 cursor:pointer; 用JS使鼠标变小手onmouseover(鼠标越过的时候) onmouseover="this.style. ...
- 转:android实时语音问题分析
转:http://ticktick.blog.51cto.com/823160/1746136 PigeonCall:一款Android VoIP网络电话App架构分析 2016-02-29 20:1 ...
- scala-协变和逆变
class GaoJi class ZhongJi extends GaoJi //协变=========================== class Card[+T] val cgaoji = ...
- DIV的变高与变宽
代码: <!DOCTYPE HTML><html><head> <meta charset="utf-8"> <title&g ...
- HTML5实时语音通话聊天,MP3压缩传输3KB每秒
目录 一.把玩方法 二.技术特性 (1)数据传输 (2)音频采集和编码 (3)音频实时接收和播放 三.应用场景 自从Recorder H5 GitHub开源库优化后,对边录边转码成小语音片段文件实时上 ...
- JS多物体运动案例:变宽、变高
任务描述: 当鼠标移入"变宽"矩形时,该矩形宽度逐渐增加至400px,移出该矩形,宽度逐渐恢复至初始值;当鼠标移入"变高"矩形时,该矩形高度逐渐增加至400px ...
随机推荐
- node传统读取文件和promise,async await,
先上传统文件加载方式代码,传统方式在处理多层嵌套时代码比较混乱 const fs = require('fs') //引入文件系统 function readFile (cb) { fs.readFi ...
- Bagging与方差
在集成学习中,通常认为Bagging的主要作用是降低方差,而Boosting的主要作用是降低偏差.Boosting能降低偏差很好理解,因为其原理就是将多个弱学习器组合成强学习器.但Bagging为什么 ...
- 开发自己的 chart - 每天5分钟玩转 Docker 容器技术(167)
Kubernetes 给我们提供了大量官方 chart,不过要部署微服务应用,还是需要开发自己的 chart,下面就来实践这个主题. 创建 chart 执行 helm create mychart 的 ...
- 基于ASP.NET MVC 微信网页登录授权(scope为snsapi_base) 流程 上 获取OPENID
流程图 我们需要判断是否存在OPENID 首先我们得先定义一个全局的OPENID 类似于普通账号密码登录系统的 当前登录用户ID 因为我是MVC 框架 我这里定义一个控制器基类 BaseCont ...
- 使用input file上传文件中onChange事件只触发一次问题
每次上传文件的时候,都会将当前的文件路径保存至$event.target.value中,当第二次选择文件时,由于两次$event.target.value相同,所以不会触发change事件. 解决方案 ...
- Java中 float、double使用注意问题
在java中运行一下代码 System.out.println(2.00-1.10);输出的结果是:0.8999999999999999很奇怪,并不是我们想要的值0.9 再运行如下代码:System. ...
- 全局唯一ID发号器的几个思路
标识(ID / Identifier)是无处不在的,生成标识的主体是人,那么它就是一个命名过程,如果是计算机,那么它就是一个生成过程.如何保证分布式系统下,并行生成标识的唯一与标识的命名空间有着密不可 ...
- jQuery学习之旅 Item4 细说DOM操作
jQuery-–DOM操作(文档处理) Dom是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准 ...
- Centos7下安装PHP5.5,5.6,7.0----(转载记录一下)
由于centOS7 默认的php版本是5.4的,偏低,所以收录了一下怎样安装5.5/5.6/7.0版本 默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案: 1.检查当前安装的 ...
- 【bzoj 2303】【Apio2011】方格染色
题目: http://www.lydsy.com/JudgeOnline/problem.php?id=2303 题解: 很神奇的思路,膜一发大佬http://www.cnblogs.com/HHsh ...