语音转文字
更新时间: 2025/04/09 15:07:02
网易云信 IM 提供语音转文字能力,支持将语音内容快速转换为可编辑、可搜索的文本信息,最大限度提升沟通效率和内容可访问性。
支持平台
本文内容适用的开发平台或框架如下表所示,本文涉及的接口请参考下文 相关接口 章节:
安卓 | iOS | macOS/Windows | Web/uni-app/小程序 | Node.js/Electron | 鸿蒙 | Flutter |
---|---|---|---|---|---|---|
✔️️️ | ✔️️️ | ✔️️️ | ✔️️️ | ✔️️️ | ✔️️ | ✔️️ |
技术原理
网易云信 IM 语音转文字功能工作流程:
- 录制音频:录制语音文件(支持最长 60 秒的音频)。
- 云端存储:将音频文件上传至云信存储服务器,获取文件 URL。
- 转换处理:调用语音转文字 API,传入音频 URL 和相关参数。
- 结果获取:接收并处理返回的文本结果。
前提条件
根据本文操作前,请确保您已经完成开通语音转文字功能。
在 云信控制台 为应用开通 语音识别。开启步骤请参考《控制台文档》 配置应用。
如果未开通功能的情况下调用接口,将返回 403 错误码。
实现步骤
调用 voiceToText
方法进行语音转文字。
示例代码:
安卓
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
V2NIMVoiceToTextParams params = V2NIMVoiceToTextParams.V2NIMVoiceToTextParamsBuilder
// 必填
.builder(duration)
// 根据实际情况配置
.withMimeType()
.withSampleRate()
.withSceneName()
.withVoicePath()
.withVoiceUrl()
.build();
v2MessageService.voiceToText(params,
new V2NIMSuccessCallback<String>() {
@Override
public void onSuccess(String s) {
// 转换成功
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 转换失败
}
});
iOS
Objective-CV2NIMVoiceToTextParams *voiceToTextParams = [[V2NIMVoiceToTextParams alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] voiceToText:voiceToTextParams
success:^(NSString * _Nonnull result) {
// result 语音转出的文本
}
failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
macOS/Windows
C++V2NIMVoiceToTextParams params,
params.voiceUrl = "voice_url";
params.mimeType = "aac";
params.duration = "1000";
messageService.voiceToText(
params,
[](nstd::string text) {
// translate voice to text succeeded
},
[](V2NIMError error) {
// translate voice to text failed, handle error
});
Web/uni-app/小程序
TypeScripttry {
const res: string = await nim.V2NIMMessageService.voiceToText({
voiceUrl: 'https://nim.nosdn.127.net/{bucket}/{object}',
sampleRate: '44kHz',
duration: 30000,
mimeType: 'audio/mp3'
});
// TODO: Success
} catch (err) {
// TODO: Error
}
Node.js/Electron
TypeScripttry {
const result = await v2.messageService.voiceToText({
voiceUrl: 'https://nim.nosdn.127.net/{bucket}/{object}',
sampleRate: '44kHz',
duration: 30000,
mimeType: 'audio/mp3'
});
// TODO: Success
} catch (err) {
// TODO: Error
}
鸿蒙
TypeScripttry {
const res: string = await nim.messageService.voiceToText({
voiceUrl: 'https://nim.nosdn.127.net/{bucket}/{object}',
sampleRate: '44kHZ',
duration: 30000,
mimeType: 'audio/mp3'
})
// todo Success
} catch (err) {
// todo error
}
Flutter
Dartawait NimCore.instance.messageService.voiceToText(params);
相关接口
安卓/iOS/macOS/Windows/Web/uni-app/小程序/Node.js/Electron/鸿蒙
API | 说明 |
---|---|
voiceToText |
语音转文字 |
Flutter
API | 说明 |
---|---|
voiceToText |
语音转文字 |
常见问题排查
- 403 错误:检查控制台是否已开通语音识别功能。
- URL 无效错误:确保语音文件 URL 可访问且格式正确。
- 转换超时:检查网络连接,或尝试缩短音频长度。
- 识别不准确:检查音频质量,调整采样率或使用更适合的场景参数。
此文档是否对你有帮助?