java本地语音识别代码 java语音处理

java可以实现语音识别吗这个是可以实现的 。
注:test.pcm是语音文件,可以用audacity软件打开,选择 文件-导入-裸数据 。设置采样率为8000Hz 。点击播放就能听见声音了 。
这个时候程序跑起来还有问题,需要将apiKey 以及secretKey填写上 。这两个值是你申请应用对应的分配好的 。
cuid填本机mac地址就可以了,这个值我试过好像无所谓没啥要求 。
程序能跑起来,并且按照正常返回识别的语音结果 。但是返回结果的编码为GBK,所以汉字显示为乱码,需要对其进行一次转码 。转码的代码是我自己加上去的
怎样用java做语音识别这块国内一般都用科大讯飞的语音云来做语音识别 。不过那个接口是c/c++的,用JAVA来调用的话要通过java调用dll的技术,类似于 jni 或者 jna 都可以
在java怎么调用julius做语音识别?。壳蠼涌诖?/h2>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
*初始化时传入的字符串,以指定合成用到的一些配置参数 , 各个参数以“参数名=参数值”的形式出现,大小写不敏感,不同的参数之间以“
*,”或“\n”隔开,不设置任何值时可以传入NULL或空串:
* @return 如果函数调用成功返回MSP_SUCCESS,否则返回错误代码,错误代码参见msp_errors
*/
public int QISRInit(String configs);
/**
* 开始一个ISR会话
*
* @param grammarList
*uri-list格式的语法,可以是一个语法文件的URL或者一个引擎内置语法列表 。可以同时指定多个语法,不同的语法之间以“,”
*隔开 。进行语音听写时不需要语法,此参数设定为NULL或空串即可java本地语音识别代码;进行语音识别时则需要语法 , 语法可以在此参数中指定,
*也可以随后调用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

推荐阅读