赞
踩
近期因为项目需要,要接入科大讯飞 实时语音转写功能,由于官网没提供SDK,也没有找到合适的开源SDK,所以这里自己花了两天时间,用Netty写了一版。
<dependency>
<groupId>com.yijianguanzhu.iflytek</groupId>
<artifactId>iflytek-rtasr-websocket-client</artifactId>
<version>1.1</version>
</dependency>
@Slf4j public class Main { public static void main( String[] args ) throws InterruptedException { // 线程安全,AsrWebSocketClientConfig设置成全局唯一变量 AsrWebSocketClientConfig config = AsrWebSocketClientConfig.builder() .appId( "你的appid" ) .apiKey( "你的apikey" ) .url( "wss://rtasr.xfyun.cn/v1/ws" ) .build(); // 线程安全,AsrWebSocketClient设置成全局唯一变量 AsrWebSocketClient asrWebSocketClient = AsrWebSocketClientFactory.buildClient( config ); // 每次音频转写会话,都会新生成一个AsrChannel对象 AsrChannel asrChannel = asrWebSocketClient.onMessage( asrResponse -> { log.info( asrResponse.toString() ); } ); asrChannel.onError( asrException -> { log.error( "异常:", asrException ); } ); asrChannel.onStarted( asrResponse -> { log.info( "已和科大讯飞服务端握手成功." ); } ); // 等待和科大讯飞握手成功 asrChannel.awaitOpen(); log.info( "开始" ); asrChannel.send( "".getBytes() ); // 通知会话结束标识 asrChannel.complete(); // 等待科大讯飞识别完最后一段语音。 asrChannel.await(); // 生产中,不需要关闭客户端,这里关闭只是测试结束时为了能够退出虚拟机。 asrWebSocketClient.shutdown(); } }
在自己工程中引入依赖后,只需要在自己代码中编写如下代码即可,然后根据提示操作。之后你便可以边说话边识别
import com.yijianguanzhu.iflytek.rtasr.Main;
/**
* @author yijianguanzhu 2021年01月09日
* @since 1.8
*/
public class AsrTest {
public static void main( String[] args ) {
Main.appId = "你的appId";
Main.apiKey = "你的apiKey";
Main.main( args );
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。