Java实现微软翻译API的音频流处理
公司在项目启动阶段需利用微软的实时语音识别,为此详细研究了微软官方提供的SDK和API。前端与Java后端的交互相对简单,前端页面通过HZRcorder采集实时音频流,处理成二进制数据,而后端则采用Netty和WebSocket接收消息。项目的难点主要集中在微软的翻译功能上。微软官方提供了两种翻译类型,一种是基于一段音频片段的翻译,另一种是硬件设备直接获取流进行翻译。由于我们的服务需要部署在服务器上,因此无法采用第二种方式。在第一种情况下,微软的SpeechRecognizer对象可以接收一个特殊的流对象PullAudioStreamCallback作为数据源。然而,由于默认的流类型无法满足我们的需求,存在一个问题,即SpeechRecognizer在流中读取到0个字节后会停止识别。在我们的场景中,需要流在明确结束时才返回0,但默认的流类型无法达到这一效果。因此,我们需要自定义音频流对象,确保在流结束时才返回0,满足PullAudioStreamCallback的期望效果。
下载地址
用户评论