You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确转换MultipartFile以适配Microsoft AudioConfig?

处理MultipartFile创建Microsoft Speech AudioConfig的方案

你可以通过PullAudioInputStream包装MultipartFile的输入流,再用AudioConfig.fromStreamInput()方法创建配置对象,具体实现如下:

完整代码示例

import com.microsoft.cognitiveservices.speech.audio.AudioConfig;
import com.microsoft.cognitiveservices.speech.audio.PullAudioInputStream;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;

@PostMapping("/microsoft")
void transcribe(@RequestParam("file") MultipartFile file) throws IOException {
    // 使用try-with-resources自动管理流资源,避免泄漏
    try (InputStream inputStream = new BufferedInputStream(file.getInputStream());
         PullAudioInputStream pullAudioStream = PullAudioInputStream.create(inputStream)) {
             
        // 从包装后的音频流创建AudioConfig
        AudioConfig audioConfig = AudioConfig.fromStreamInput(pullAudioStream);
        
        // 后续可基于此audioConfig创建SpeechRecognizer执行转写
        // SpeechRecognizer recognizer = new SpeechRecognizer(speechConfig, audioConfig);
        // ... 转写逻辑
    }
}

关键说明

  • PullAudioInputStream是Microsoft Speech SDK提供的类,用于包装标准Java InputStream,让SDK可以从流中读取音频数据。
  • 确保上传的音频格式是SDK支持的类型(如WAV、PCM等),如果是其他格式(如MP3),需要先转码为支持的格式,否则转写会失败。
  • 使用try-with-resources语法可以自动关闭输入流和SDK的音频流,避免资源泄漏。

内容的提问来源于stack exchange,提问作者Henning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:15:28