科大讯飞 asr 实时语音转写 rtasr 基于Netty编写的websocket client SDK

概述

近期因为项目需要,要接入科大讯飞 实时语音转写功能,由于官网没提供SDK,也没有找到合适的开源SDK,所以这里自己花了两天时间,用Netty写了一版。

项目地址

github

Maven引入

<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 );
	}
}
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值