语音变声

最近更新时间:2024-10-15 14:45:41

我的收藏
为方便开发者调试和接入腾讯云游戏多媒体引擎产品 API,本文向您介绍游戏多媒体引擎变声特效的接入方法。

使用场景





前提条件

已开通实时语音服务:可参见 服务开通指引
已开通语音转文本服务:可参见 服务开通指引
已接入 GME SDK:包括核心接口和实时语音接口的接入,详情可参见 Native SDK 快速接入Unity SDK 快速接入Unreal SDK 快速接入
已接入 GME SDK 库文件libgmesoundtouch:需要保证工程库文件中带有 libgmesoundtouch,具体参见 库文件对应功能

实时语音变声接入

变声接口

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

函数原型

Android
iOS
Unity
C++
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());
}

语音消息变声接入

语音消息变声流程




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

语音消息播放

语音消息播放接口,带有变声效果参数。
Android
iOS
Unity
C++
public abstract int PlayRecordedFile(String filePath,int voicetype);
-(int)PlayRecordedFile:(NSString*)filePath VoiceType:(ITMG_VOICE_TYPE) type
ITMGPTT PlayRecordedFile(string filePath,int voiceType);
public abstract int PlayRecordedFile(string filePath,int voiceType);
参数
类型
含义
filePath
string
本地语音文件的路径
voicetype
int
变声类型

错误码

错误码值
原因
建议方案
20485
播放未开始
确保文件存在,文件路径的合法性