功能描述
语音转文字功能支持识别您所发送或接收成功的语音消息,将其转换成文字。
效果展示
您可以使用本功能,实现如下图所示的转文字效果:
接口说明
语音转文字
接口参数说明如下:
入参 | 含义 | 说明 |
language | 识别的目标语言 | 如果您的主流用户使用中、英文居多,language 参数可传空字符串,此时我们默认使用中英模型识别。 如果您想指定识别的目标语言,可以将其设置成指定值。目前支持的语言请参见 语言支持。 |
callback | 识别结果回调 | 其中的 result 为识别的文本。 |
注意:
识别的语音消息时长不可以超过 60s(60.00001s 也不行),否则会识别失败。
识别的语音消息音频需要设置为 16k 采样率,否则可能识别失败。
示例代码如下:
// 获取到语音消息的 V2TIMMessage 对象V2TIMMessage msg = messageList.get(0);if (msg.elemType == V2TIM_ELEM_TYPE_SOUND) {// 从 V2TIMMessage 中获取到 soundElemV2TIMSoundElem soundElem = msg.getSoundElem();// 调用语音转文字,默认使用中英文识别模型soundElem.convertVoiceToText("",new V2TIMValueCallback<String>() {@Overridepublic 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);}@Overridepublic 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 中获取到 soundElemV2TIMSoundElem *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 中获取到 soundElemV2TIMElem *elem = message.elemList[0];if (elem->elemType == V2TIM_ELEM_TYPE_SOUND) {V2TIMSoundElem *sound_elem = (V2TIMSoundElem *)elem;// 调用语音转文字,默认使用中英文识别模型sound_elem->ConvertVoiceToText("", callback);}
语言支持
目前支持识别的目标语言如下:
支持的语言 | 入参设置 |
中文普通话 | "zh (cmn-Hans-CN)" |
中文粤语 | "yue-Hant-HK" |
English | "en-US" |
日本语(日本) | "ja-JP" |