如何正确转换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
相关产品推荐
相关产品推荐

