游戏多媒体引擎 语音变声

为方便开发者调试和接入腾讯云游戏多媒体引擎产品 API,这篇向你介绍游戏多媒体引擎变声特效的接入方法。

相关产品
游戏多媒体引擎 产品页,含版本规格、价格与购买入口。

一、使用场景

关于变声玩法的效果请参见 实时语音趣味变声,大叔变声“妙音娘子”Get一下。

二、前提条件

·已开通实时语音服务:可参见 服务开通指引。

·已开通语音转文本服务:可参见 服务开通指引。

·已接入 GME SDK:包括核心接口和实时语音接口的接入,详情可参见 Native SDK 快速接入、Unity SDK 快速接入、Unreal SDK 快速接入。

·已接入 GME SDK 库文件libgmesoundtouch:需要保证工程库文件中带有 libgmesoundtouch,具体参见 库文件对应功能。

三、变声接口

在已经进房成功且打开麦克风的情况下,调用 SetVoiceType 接口设置变声特效,接口返回0代表调用成功,房间内的人听到的本端发出的声音带有变声效果。如果要自测变声效果,请使用耳返功能(接口:EnableLoopBack)。

四、函数原型

AndroidiOSUnityC++public abstract int SetVoiceType(int type);-(QAVResult)SetVoiceType:(ITMG_VOICE_TYPE) type public abstract int SetVoiceType(int voiceType);virtual int SetVoiceType(ITMG_VOICE_TYPE voiceType) = 0;

参数 类型 意义
type int 表示本端音频变声类型

五、变声类型

类型参数 参数代表 意义
ITMG_VOICE_TYPE_ORIGINAL_SOUND 0 原声
ITMG_VOICE_TYPE_LOLITA 1 小女孩
ITMG_VOICE_TYPE_UNCLE 2 大叔
ITMG_VOICE_TYPE_INTANGIBLE 3 空灵
ITMG_VOICE_TYPE_DEAD_FATBOY 4 小胖子
ITMG_VOICE_TYPE_HEAVY_MENTA 5 重金属
ITMG_VOICE_TYPE_DIALECT 6 歪果仁
ITMG_VOICE_TYPE_INFLUENZA 7 感冒
ITMG_VOICE_TYPE_CAGED_ANIMAL 8 困兽
ITMG_VOICE_TYPE_HEAVY_MACHINE 9 重机器
ITMG_VOICE_TYPE_STRONG_CURRENT 10 强电流
ITMG_VOICE_TYPE_KINDER_GARTEN 11 幼稚园
ITMG_VOICE_TYPE_HUANG 12 小顽童

六、示例代码

int ret = m_pTmgContext->GetAudioEffectCtrl()->SetVoiceType((ITMG_VOICE_TYPE)m_ComBoxVoiceChangeType.GetCurSel()); if (ret != AV_OK) { char result[128] = { 0 }; snprintf(result, sizeof result, "SetVoiceType failed error code: %d", ret); m_EditMonitor.SetWindowText(MByteToWChar(std::string(result)).c_str()); }

七、语音消息变声流程

语音消息变声不会影响原始的音频信息,在播放的时候才体现变声效果。

八、语音消息播放

语音消息播放接口,带有变声效果参数。

AndroidiOSUnityC++public abstract int PlayRecordedFile(String filePath,int voicetype);-(int)PlayRecordedFile:(NSString*)filePath VoiceType:(ITMG_VOICE_TYPE) typeITMGPTT PlayRecordedFile(string filePath,int voiceType);public abstract int PlayRecordedFile(string filePath,int voiceType);

参数 类型 含义
filePath string 本地语音文件的路径
voicetype int 变声类型

九、错误码

错误码值 原因 建议方案
20485 播放未开始 确保文件存在,文件路径的合法性
赞 (0)
上一篇 4天前
下一篇 4天前