展开全部
package com.cnblogs.htynkn;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
public interface QTSR extends Library {
QTSR INSTANCE = (QTSR) Native.loadLibrary("msc", QTSR.class);
/**
* 初始化MSC的ISR部分
*
* @param configs
* 初始化时传入的字符串,以指定合成用到e69da5e6ba9062616964757a686964616f31333332613761的一些配置参数,各个参数以“参数名=参数值”的形式出现,大小写不敏感,不同的参数之间以“
* ,”或“\n”隔开,不设置任何值时可以传入NULL或空串:
* @return 如果函数调用成功返回MSP_SUCCESS,否则返回错误代码,错误代码参见msp_errors
*/
public int QISRInit(String configs);
/**
* 开始一个ISR会话
*
* @param grammarList
* uri-list格式的语法,可以是一个语法文件的URL或者一个引擎内置语法列表。可以同时指定多个语法,不同的语法之间以“,”
* 隔开。进行语音听写时不需要语法,此参数设定为NULL或空串即可;进行语音识别时则需要语法,语法可以在此参数中指定,
* 也可以随后调用QISRGrammarActivate指定识别所用的语法。
* @param params
* 本路ISR会话使用的参数,可设置的参数及其取值范围请参考《可设置参数列表_MSP20.xls》,各个参数以“参数名=参数值”
* 的形式出现,不同的参数之间以“,”或者“\n”隔开。
* @param errorCode
* 如果函数调用成功则其值为MSP_SUCCESS,否则返回错误代码,错误代码参见msp_errors。几个主要的返回值:
* MSP_ERROR_NOT_INIT 未初始化 MSP_ERROR_INVALID_PARA 无效的参数
* MSP_ERROR_NO_LICENSE 开始一路会话失败
* @return MSC为本路会话建立的ID,用来唯一的标识本路会话,供以后调用其他函数时使用。函数调用失败则会返回NULL。
*/
public String QISRSessionBegin(String grammarList, String params,
IntByReference errorCode);
/**
* 传入语法
*
* @param sessionID
* 由QISRSessionBegin返回过来的会话ID。
* @param grammar
* 语法字符串
* @param type
* 语法类型,可以是uri-list、abnf、xml等
* @param weight
* 本次传入语法的权重,本参数在MSP 2.0中会被忽略。
* @return 如果函数调用成功返回MSP_SUCCESS,否则返回错误代码,错误代码参见msp_errors
*/
public int QISRGrammarActivate(String sessionID, String grammar,
String type, int weight);
/**
* 写入用来识别的语音
*
* @param sessionID
* 由QISRSessionBegin返回过来的会话ID。
* @param waveData
* 音频数据缓冲区起始地址
* @param waveLen
* 音频数据长度,其大小不能超过设定的max_audio_size
* @param audioStatus
* 用来指明用户本次识别的音频是否发送完毕,可能值如下:
* MSP_AUDIO_SAMPLE_FIRST = 1 第一块音频
* MSP_AUDIO_SAMPLE_CONTINUE = 2 还有后继音频
* MSP_AUDIO_SAMPLE_LAST = 4 最后一块音频
* @param epStatus
* 端点检测(End-point detected)器所处的状态,可能的值如下:
* MSP _EP_LOOKING_FOR_SPEECH = 0 还没有检测到音频的前端点。
* MSP _EP_IN_SPEECH = 1 已经检测到了音频前端点,正在进行正常的音频处理。
* MSP _EP_AFTER_SPEECH = 3 检测到音频的后端点,后继的音频会被MSC忽略。
* MSP _EP_TIMEOUT = 4 超时。
* MSP _EP_ERROR= 5 出现错误。
* MSP _EP_MAX_SPEECH = 6 音频过大。
* @param recogStatus
* 识别器所处的状态
* @return
*/
public int QISRAudioWrite(String sessionID, Pointer waveData, int waveLen,
int audioStatus, IntByReference epStatus, IntByReference recogStatus);
/**
* 获取识别结果
*
* @param sessionID 由QISRSessionBegin返回过来的会话ID。
* @param rsltStatus 识别结果的状态,其取值范围和含义请参考QISRAudioWrite的参数recogStatus
* @param wai