modelscope-funasr中,funasr把语音识别结果返回给Java后端Java要传哪些?

modelscope-funasr中,非实时语音识别,前端传来了文件给Java后端springboot处理,接着springboot传文件给funasr,funasr把语音识别结果返回给Java后端Java需要传哪些参数?

展开
收起
提问的橘子 2024-04-19 13:59:38 249 分享 版权
阿里云 AI 助理回答

在使用ModelScope FunASR进行非实时语音识别时,Java后端(Spring Boot)需要从前端接收文件,并将文件传递给FunASR服务以获取语音识别结果。以下是Java后端需要传递的关键参数及其说明:


1. API Key

  • 描述:用于身份验证的密钥,确保请求的合法性。
  • 设置方式
    • 建议将API Key配置到环境变量中,避免硬编码在代码中。
    • 如果未配置环境变量,则需要在代码中显式指定API Key。
  • 示例
    .apiKey("your-api-key")
    

2. 模型名称

  • 描述:指定使用的语音识别模型。
  • 要求:必须通过model参数指定,固定为sensevoice-v1
  • 示例
    .model("sensevoice-v1")
    

3. 待识别音频的URL

  • 描述:FunASR不支持直接上传本地文件,需提供可通过公网访问的音频文件URL。
  • 要求
    • URL需支持HTTP/HTTPS协议。
    • 单次请求最多支持100个URL。
  • 示例
    .fileUrls(Arrays.asList("https://your-domain.com/file.mp3"))
    

4. 音频格式与采样率

  • 描述:确保音频文件符合FunASR的要求,否则可能导致识别失败。
  • 要求
    • 支持的格式包括WAV、MP3等。
    • 推荐的采样率为8KHz或16KHz,单声道,16位采样位数。
  • 检查方法
    • 使用工具(如file命令、Sox或FFmpeg)检查音频格式并转换为标准格式。

5. 任务提交方式

  • 描述:FunASR支持异步提交任务和同步等待结果的方式。
  • 流程
    1. 创建Transcription实例。
    2. 调用asyncCall方法提交任务,传入TranscriptionParam实例。
    3. 使用wait方法阻塞等待任务完成,或通过fetch方法轮询任务状态。
  • 示例
    Transcription transcription = new Transcription();
    TranscriptionParam param = TranscriptionParam.builder()
        .apiKey("your-api-key")
        .model("sensevoice-v1")
        .fileUrls(Arrays.asList("https://your-domain.com/file.mp3"))
        .build();
    TranscriptionResult result = transcription.asyncCall(param);
    result.wait(); // 阻塞等待任务完成
    

6. 其他可选参数

  • 描述:根据需求,可以设置额外的参数以优化识别效果。
  • 常见参数
    • language:指定音频的语言(如中文、英文)。
    • format:明确音频文件的格式(如WAV、MP3)。
    • sampleRate:指定音频的采样率(如8000、16000)。

重要提醒

  • 文件URL的有效性:确保提供的音频文件URL可以通过公网访问,且文件未过期或被删除。
  • 任务结果有效期:识别结果和下载链接仅在24小时内有效,请及时处理。
  • 错误排查
    • 如果识别失败,请检查音频格式是否符合要求。
    • 确保API Key和模型名称正确无误。

通过以上步骤,Java后端可以成功将前端传递的文件发送至FunASR,并获取语音识别结果。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

包含命名实体识别、文本分类、分词、关系抽取、问答、推理、文本摘要、情感分析、机器翻译等多个领域

热门讨论

热门文章

还有其他疑问?
咨询AI助理