语音转文字

更新时间: 2025/04/09 15:07:02

网易云信 IM 提供语音转文字能力,支持将语音内容快速转换为可编辑、可搜索的文本信息,最大限度提升沟通效率和内容可访问性。

支持平台

本文内容适用的开发平台或框架如下表所示,本文涉及的接口请参考下文 相关接口 章节:

安卓 iOS macOS/Windows Web/uni-app/小程序 Node.js/Electron 鸿蒙 Flutter
✔️️️ ✔️️️ ✔️️️ ✔️️️ ✔️️️ ✔️️ ✔️️

技术原理

网易云信 IM 语音转文字功能工作流程:

  1. 录制音频:录制语音文件(支持最长 60 秒的音频)。
  2. 云端存储:将音频文件上传至云信存储服务器,获取文件 URL。
  3. 转换处理:调用语音转文字 API,传入音频 URL 和相关参数。
  4. 结果获取:接收并处理返回的文本结果。

前提条件

根据本文操作前,请确保您已经完成开通语音转文字功能。

云信控制台 为应用开通 语音识别。开启步骤请参考《控制台文档》 配置应用

语音识别.png

如果未开通功能的情况下调用接口,将返回 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 可访问且格式正确。
  • 转换超时:检查网络连接,或尝试缩短音频长度。
  • 识别不准确:检查音频质量,调整采样率或使用更适合的场景参数。
此文档是否对你有帮助?
有帮助
去反馈
  • 支持平台
  • 技术原理
  • 前提条件
  • 实现步骤
  • 相关接口
  • 常见问题排查