tencent cloud

文档反馈

Android&iOS&Windows&Mac

最后更新时间:2024-07-05 17:57:31

    功能描述

    语音转文字功能支持识别您所发送或接收成功的语音消息,将其转换成文字。
    说明:
    语音转文字是增值付费功能,处于内测阶段,您可通过 Telegram 技术交流群组 联系我们为您开通体验完整功能。
    该功能仅增强版 SDK 7.4 及以上版本支持。

    效果展示

    您可以使用本功能,实现如下图所示的转文字效果:
    
    
    

    接口说明

    语音转文字

    您可以调用 convertVoiceToText (Android / iOS & Mac / Windows) 接口将语音转换成文本。
    接口参数说明如下:
    入参
    含义
    说明
    language
    识别的目标语言
    1. 如果您的主流用户使用中、英文居多,language 参数可传空字符串,此时我们默认使用中英模型识别。
    2. 如果您想指定识别的目标语言,可以将其设置成指定值。目前支持的语言请参考 语言支持
    callback
    识别结果回调
    其中的 result 为识别的文本。
    警告:
    识别的语音消息音频需要设置为 16k 采样率,否则可能识别失败。
    示例代码如下:
    Android
    iOS & Mac
    Windows
    // 获取到语音消息的 V2TIMMessage 对象
    V2TIMMessage msg = messageList.get(0);
    if (msg.elemType == V2TIM_ELEM_TYPE_SOUND) {
    // 从 V2TIMMessage 中获取到 soundElem
    V2TIMSoundElem soundElem = msg.getSoundElem();
    // 调用语音转文字,默认使用中英文识别模型
    soundElem.convertVoiceToText("",new V2TIMValueCallback<String>() {
    @Override
    public void onError(int code, String desc) {
    TUIChatUtils.callbackOnError(callBack, TAG, code, desc);
    String str = "convertVoiceToText failed, code: " + code + " desc: " + desc;
    ToastUtil.show(str,true, 1);
    }
    @Override
    public void onSuccess(String result) {
    // 识别成功,result 为识别结果
    String str = "convertVoiceToText succeed, result: " + result;
    ToastUtil.show(str, true, 1);
    }
    });
    }
    // 获取到语音消息的 V2TIMMessage 对象
    V2TIMMessage *msg = messageList[0];
    if (msg.elemType == V2TIM_ELEM_TYPE_SOUND) {
    // 从 V2TIMMessage 中获取到 soundElem
    V2TIMSoundElem *soundElem = msg.soundElem;
    // 调用语音转文字,默认使用中英文识别模型
    [soundElem convertVoiceToText:@"" completion:^(int code, NSString *desc, NSString *result) {
    // 识别成功,result 为识别结果
    NSLog(@"convertVoiceToText, code: %d, desc: %@, result: %@", code, desc, result);
    }];
    }
    template <class T>
    class ValueCallback final : public V2TIMValueCallback<T> {
    public:
    using SuccessCallback = std::function<void(const T&)>;
    using ErrorCallback = std::function<void(int, const V2TIMString&)>;
    
    ValueCallback() = default;
    ~ValueCallback() override = default;
    
    void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {
    success_callback_ = std::move(success_callback);
    error_callback_ = std::move(error_callback);
    }
    
    void OnSuccess(const T& value) override {
    if (success_callback_) {
    success_callback_(value);
    }
    }
    void OnError(int error_code, const V2TIMString& error_message) override {
    if (error_callback_) {
    error_callback_(error_code, error_message);
    }
    }
    
    private:
    SuccessCallback success_callback_;
    ErrorCallback error_callback_;
    };
    
    auto callback = new ValueCallback<V2TIMString>{};
    callback->SetCallback(
    [=](const V2TIMString& result) {
    // 语音转文字成功,result 为转换结果
    delete callback;
    },
    [=](int error_code, const V2TIMString& error_message) {
    // 语音转文字失败
    delete callback;
    });
    
    // 获取到语音消息的 V2TIMMessage 对象
    V2TIMMessage *msg = messageList[0];
    // 从 V2TIMMessage 中获取到 soundElem
    V2TIMElem *elem = message.elemList[0];
    if (elem->elemType == V2TIM_ELEM_TYPE_SOUND) {
    V2TIMSoundElem *sound_elem = (V2TIMSoundElem *)elem;
    // 调用语音转文字,默认使用中英文识别模型
    sound_elem->ConvertVoiceToText("", &convertVoiceToTextCallback);
    }

    语言支持

    目前支持识别的目标语言如下:
    支持的语言
    入参设置
    中文普通话
    "zh (cmn-Hans-CN)"
    中文粤语
    "yue-Hant-HK"
    English
    "en-US"
    日本語(日本)
    "ja-JP"
    联系我们

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

    技术支持

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

    7x24 电话支持