# Java SDK 语音识别(Recognizer)
这里介绍的是Java SDK API关于语音识别(Recognizer)的相关说明,点击右侧目录可快速找到相应文件。
# 类SpeechRecognizer
java.lang.Object
com.iflytek.cloud.msc.module.SpeechModule
com.iflytek.cloud.speech.SpeechRecognizer
public abstract class SpeechRecognizer
extends com.iflytek.cloud.msc.module.SpeechModule
# 语音识别类
语音识别,包括听写功能。语音识别技术(Auto Speech Recognize, 简称ASR)即把人的自然语言音频数据转换成文本数据。关于文本数据转语音的 功能,请参考语音合成类 SpeechSynthesizer(opens new window)
听写,基于自然语言处理技术,将自然语言转换为文本输出的技术。语音听写不需要基于某个具体的语法文件,其识别 范围是整个语种内的词条。在听写时,应用还可以上传个性化的词表,如联系人 列表等,提高列表中词语的匹配率。关于个性化词表上传,请参考updateLexicon(String, String, LexiconListener)。
本类使用单例,调用者使用本类的对象,只需要通过createRecognizer()创建 一次对象后,便可一直使用该对象,直到通过调用destroy()进行单例对象销毁。调 用者可通过getRecognizer()获取当前已经创建的单例。在销毁本类的单例对象后, 需要先通过createRecognizer()再次创建单例对象,方可再使用。
# 构造器概要
# 构造器和说明
# 方法概要 限定符和类型 方法和说明 void cancel()取消会话 通过此函数取消当前的会话。
static SpeechRecognizer createRecognizer()创建单例对象 使用此函数创建一个本类单例对象。
abstract boolean destroy()销毁单例对象 通过本函数,销毁由createRecognizer创建的单例对象。
java.lang.String getParameter(java.lang.String key) 获取参数 获取指定的参数的当前值。
static SpeechRecognizer getRecognizer() 获取单例对象 通过函数获取已创建的单例对象。
abstract boolean isListening() 是否在会话中 通过此函数,获取当前SDK是否正在进行会话。
boolean setParameter(java.lang.String key, java.lang.String value) 参数设置
abstract void startListening(RecognizerListener listener) 开始录音 调用此函数,开始听写。
abstract void stopListening() 停止录音 调用本函数告知SDK,当前会话音频已全部录入。
abstract int updateLexicon(java.lang.String lexiconName, java.lang.String lexiconContent,LexiconListener lexiconListener) 更新词典 更新应用个性化的词典,如联系人列表等。
abstract int writeAudio(byte[] buffer, int offset, int length) 写入录音数据 通过调用此函数,把音频数据传给SDK。
# 从类继承的方法 com.iflytek.cloud.msc.module.SpeechModule
getStaticSync, getSync, setParameter
# 从类继承的方法 java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
# 构造器详细资料
# SpeechRecognizer
public SpeechRecognizer()
# 方法详细资料
# createRecognizer
public static SpeechRecognizer createRecognizer()
# 创建单例对象
使用此函数创建一个本类单例对象。当成功创建一次单例对象后,可一直使用此对象, 直到调用destroy()销毁已创建的单例对象为止。若在当前应用生命周期内调用 destroy()前再次调用本函数,则直接返回已创建的单例对象。可通过 getRecognizer()获取已创建的单例对象。
# getRecognizer
public static SpeechRecognizer getRecognizer()
# 获取单例对象
通过函数获取已创建的单例对象。当单例对象未创建时,将返回null,此时应先通过 createRecognizer()创建单例对象。
# startListening
public abstract void startListening(RecognizerListener listener)
开始录音
调用此函数,开始听写。
目前SDK不支持多线程,所以在调用本函数开始一次会话后,直到结束前(结果返回 完毕,或出现错误),不能再调用本函数开始新的会话。一次会话,即从会话开始,到结 束为止。
调用本函数开始识别后,通过SDK的录音机录取用户通过麦克风读入的音频(当 SpeechConstant.AUDIO_SOURCE(opens new window) 值>=0时),或由应用层调用 writeAudio(byte[], int, int)写入音频流,获取用于识别的音频。在完成音频 录入(包括麦克风或写音频流方式)后,通过调用stopListening()告知SDK已完 成音频录入,或由SDK自带的VAD(Voice Activity Detection,静音抑制)自动结束音频录 入,见RecognizerListener.onEndOfSpeech()。(关于写入音流方式的SDK自动结束 录入应注意的地方,请参考writeAud