tencent cloud

文档反馈

语音变声

最后更新时间:2024-12-18 15:01:09
    为方便开发者调试和接入腾讯云游戏多媒体引擎产品 API,本文向您介绍游戏多媒体引擎变声特效的接入方法。

    使用场景

    
    
    

    前提条件

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

    实时语音变声接入

    变声接口

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

    函数原型

    Android
    iOS
    Unity
    C++
    public static class ITMG_VoiceType {
    public static final int ITMG_VOICE_TYPE_ORIGINAL_SOUND = 0;
    public static final int ITMG_VOICE_TYPE_LOLITA = 1;
    public static final int ITMG_VOICE_TYPE_UNCLE = 2;
    public static final int ITMG_VOICE_TYPE_INTANGIBLE = 3;
    public static final int ITMG_VOICE_TYPE_DEAD_FATBOY = 4;
    public static final int ITMG_VOICE_TYPE_HEAVY_MENTAL = 5;
    public static final int ITMG_VOICE_TYPE_DIALECT = 6;
    public static final int ITMG_VOICE_TYPE_INFLUENZA = 7;
    public static final int ITMG_VOICE_TYPE_CAGED_ANIMAL = 8;
    public static final int ITMG_VOICE_TYPE_HEAVY_MACHINE = 9;
    public static final int ITMG_VOICE_TYPE_STRONG_CURRENT = 10;
    public static final int ITMG_VOICE_TYPE_KINDER_GARTEN = 11;
    public static final int ITMG_VOICE_TYPE_HUANG = 12;
    };
    public abstract int SetVoiceType(int type);
    
    -(QAVResult)SetVoiceType:(ITMG_VOICE_TYPE) type
    
    public abstract class ITMGAudioEffectCtrl{
    public static int VOICE_TYPE_ORIGINAL_SOUND = 0;
    public static int VOICE_TYPE_LOLITA = 1;
    public static int VOICE_TYPE_UNCLE = 2;
    public static int VOICE_TYPE_INTANGIBLE = 3;
    public static int VOICE_TYPE_DEAD_FATBOY = 4;
    public static int VOICE_TYPE_HEAVY_MENTAL = 5;
    public static int VOICE_TYPE_DIALECT = 6;
    public static int VOICE_TYPE_INFLUENZA = 7;
    public static int VOICE_TYPE_CAGED_ANIMAL = 8;
    public static int VOICE_TYPE_HEAVY_MACHINE = 9;
    public static int VOICE_TYPE_STRONG_CURRENT = 10;
    public static int VOICE_TYPE_KINDER_GARTEN = 11;
    public static int VOICE_TYPE_HUANG = 12;
    public abstract int SetVoiceType(int voiceType);
    }
    
    class ITMGAudioEffectCtrl {
    public:
    virtual ~ITMGAudioEffectCtrl(){};
    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
    小顽童

    示例代码

    ITMGContextGetInstance()->GetAudioEffectCtrl()->setVoiceType(0);

    语音消息变声接入

    语音消息变声流程

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

    语音消息播放

    语音消息播放接口,带有变声效果参数。
    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
    播放未开始
    确保文件存在,文件路径的合法性
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持