public class SpeechClient
extends java.lang.Object
限定符和类型 | 方法和说明 |
---|---|
void |
addHotwordListener(HotwordListener listener)
设置HotwordListener回调。
|
void |
cancelOneshotRecognizer(java.lang.String clientName)
取消对应的oneshot方法,并且不会有后续结果返回。
|
void |
cancelReconizer(java.lang.String clientName)
取消目前正在进行的Recognizer任务,不会有后续结果返回。
|
void |
enableAutoSyncContacts()
启动自动同步联系人功能,需要先初始化客户端。
|
void |
enableLocalSilence(boolean enableLocalSilence)
控制本地静音检测的开关。
|
void |
enableRemoteSilence(boolean enableRemoteSilence)
控制云端静音检测的开关。
|
java.lang.String |
getContactNameByNumber(java.lang.String number)
通过电话号码获取联系人名称,需要先调用
enableAutoSyncContacts() 。 |
java.util.List<ContactBean> |
getContactsByName(java.lang.String name)
通过联系人名称获取联系人信息,需要先调用
enableAutoSyncContacts() 。 |
java.lang.String |
getErrorDescription(int code)
获取错误码的描述。
|
static SpeechClient |
getInstance()
获取一个SpeechClient实例。
|
void |
init(android.content.Context appContext,
java.lang.String appkey)
初始化SpeechClient。
|
void |
init(android.content.Context appContext,
java.lang.String appkey,
boolean enableOnline,
boolean enableOffline)
初始化SpeechClient。
|
boolean |
isReady()
判断语音服务是否已经初始化完毕。
|
void |
removeHotwordListener(HotwordListener listener)
移除之前设置的HotwordListener回调
|
void |
setApps(java.lang.String[] apps)
设置应用名称列表,用于离线识别应用名。
|
void |
setClientListener(java.lang.String deviceName,
SpeechClientListener clientListener)
设置语音识别的回调。
|
void |
setContacts(java.lang.String[] contacts)
设置联系人信息。
|
void |
setHotwordContent(java.lang.String content)
设置热词的内容。
|
void |
setKeywords(java.lang.String name,
java.lang.String[] keywords)
设置离线识别关键词模型,配合Recognizer使用。
|
void |
setLocalVadParams(java.lang.String clientName,
VadType vadType,
int speechThreshold,
int silenceThreshold)
设置本地vad的参数,当vad触发时会通过
SpeechClientListener 通知。 |
void |
setLocationString(java.lang.String clientName,
java.lang.String locStr)
设置目前设备的地理位置。
|
void |
setPageSpecificVoiceAction(java.lang.String name,
java.lang.String[] cmds)
针对PageSpecific的识别场景,设置离线识别命令词模型,配合Recognizer使用。
|
void |
setQaControlParam(java.lang.String clientName,
QaControlParam qaControlParam)
设置对话控制参数。
|
void |
setRemoteVadParams(java.lang.String clientName,
int speechThreshold,
int silenceThreshold)
设置远端vad的参数,当vad触发时会通过
SpeechClientListener 通知。 |
void |
setVoiceAction(java.lang.String[] voiceAction)
设置离线命令词,供离线识别使用。
|
void |
startAsrRecognizer(java.lang.String clientName)
开启一个online语音识别任务。
|
void |
startAsrRecognizerWithQueue(java.lang.String clientName,
java.util.concurrent.BlockingQueue<byte[]> speechQueue)
开启一个online语音识别任务。
|
void |
startContactRecognizer(java.lang.String clientName)
开启一个语音任务,仅识别离线联系人,需要先传入联系人列表,See
setContacts(String[]) |
void |
startContactRecognizerWithQueue(java.lang.String clientName,
java.lang.String model,
java.util.concurrent.BlockingQueue<byte[]> speechQueue)
开启一个语音任务,仅识别离线联系人,需要先传入联系人列表,See
setContacts(String[]) |
void |
startHotword()
开始监听热词。
|
void |
startMixRecognizer(java.lang.String clientName)
开启一个语音任务,支持离线在线混合,返回结果结合二者的优势。
|
void |
startMixRecognizer(java.lang.String clientName,
java.lang.String task)
开启一个语音任务,支持离线在线混合,返回结果结合二者的优势。
|
void |
startMixRecognizer(java.lang.String clientName,
java.lang.String model,
java.lang.String task)
开启一个语音任务,支持离线在线混合,返回结果结合二者的优势。
|
void |
startMixRecognizerWithQueue(java.lang.String clientName,
java.lang.String model,
java.lang.String task,
java.util.concurrent.BlockingQueue<byte[]> speechQueue)
开启一个语音任务,支持离线在线混合,返回结果结合二者的优势。
|
void |
startMultiKeywordsRecognizer(java.lang.String clientName,
java.lang.String model)
开启一个语音任务,可以长时间离线监听关键词,监听识别结果在
SpeechClientListener.onPartialTranscription(String) 中返回,
一次启动会无限监听,直到cancelReconizer(String) 被调用。 |
void |
startMultiKeywordsWithQueue(java.lang.String clientName,
java.lang.String model,
java.util.concurrent.BlockingQueue<byte[]> speechQueue)
开启一个语音任务,可以长时间离线监听关键词,监听识别结果在
SpeechClientListener.onPartialTranscription(String) 中返回,
一次启动会无限监听,直到cancelReconizer(String) 被调用。 |
void |
startOfflineRecognizer(java.lang.String clientName)
开启一个语音任务,目前支持命令词识别,如“打电话给王路”,“打开支付宝”等。
|
void |
startOfflineRecognizer(java.lang.String clientName,
java.lang.String model)
开启一个语音任务,目前支持命令词识别,如“打电话给王路”,“打开支付宝”等。
|
void |
startOfflineRecognizerWithQueue(java.lang.String clientName,
java.lang.String model,
java.util.concurrent.BlockingQueue<byte[]> speechQueue)
开启一个语音任务,目前支持命令词识别,如“打电话给王路”,“打开支付宝”等。
|
void |
startOneboxRecognizer(java.lang.String clientName)
开启一个语音任务,仅是online,返回语音识别结果,和搜索结果。
|
void |
startOneboxRecognizer(java.lang.String clientName,
java.lang.String task)
开启一个语音任务,仅是online,返回语音识别结果,和搜索结果。
|
void |
startOneboxRecognizerWithQueue(java.lang.String clientName,
java.lang.String task,
java.util.concurrent.BlockingQueue<byte[]> speechQueue)
开启一个语音任务,仅是online,返回语音识别结果,和搜索结果。
|
void |
startOneshotMixRecognizer(java.lang.String clientName)
hotword+MixRecognizer,即在检测到热词之后立刻进入MixRecognizer,
其识别能力与
startMixRecognizer(String) 一致。 |
void |
startOneshotMixRecognizerWithQueue(java.lang.String clientName,
java.util.concurrent.BlockingQueue<byte[]> speechQueue) |
void |
startOneshotOfflineRecognizer(java.lang.String clientName)
hotword+OfflineRecognizer,即在检测到热词之后立刻进入OfflineRecognizer,
其识别能力与
startOfflineRecognizer(String) 一致。 |
void |
startOneshotOneboxRecognizer(java.lang.String clientName)
hotword+OneboxRecognizer,即在检测到热词之后立刻进入OneboxRecognizer,
其识别能力与
startOneboxRecognizer(String) 一致。 |
void |
startOneshotOneboxRecognizerWithQueue(java.lang.String clientName,
java.util.concurrent.BlockingQueue<byte[]> speechQueue) |
void |
startOneshotSemanticRecognizer(java.lang.String clientName)
hotword+SemanticRecognizer,即在检测到热词之后立刻进入SemanticRecognizer,
其识别能力与
startSemanticRecognizer(String) 一致。 |
void |
startSemanticRecognizer(java.lang.String clientName)
开启一个语音任务,只通过online,返回语义分析,无搜索结果。
|
void |
startSemanticRecognizerWithQueue(java.lang.String clientName,
java.util.concurrent.BlockingQueue<byte[]> speechQueue)
开启一个语音任务,只通过online,返回语义分析,无搜索结果。
|
void |
startTextSearch(java.lang.String text,
SearchListener callback)
开始一个在线的文本搜索任务。
|
void |
startTextSearch(java.lang.String text,
java.lang.String location,
QaControlParam qaControlParam,
SearchListener callback)
开始一个在线的文本搜索任务。
|
void |
startTextSearch(java.lang.String text,
java.lang.String location,
SearchListener callback)
开始一个在线的文本搜索任务。
|
void |
startTextSemantic(java.lang.String text,
SearchListener callback)
开始一个在线的文本任务,仅提供语义分析没有搜索结果。
|
void |
startTTS(TTSRequest request)
开始合成tts,并且播放。
|
void |
startTTS(TTSRequest request,
TTSListener ttsListener)
开始合成tts,并且播放。
|
void |
startVoiceInput(java.lang.String clientName)
开启一个语音任务仅识别输入语音,与其他语音任务和热词监听相冲突。
|
void |
startVoiceInputWithQueue(java.lang.String clientName,
java.util.concurrent.BlockingQueue<byte[]> speechQueue)
开启一个语音任务仅识别输入语音,与其他语音任务和热词监听相冲突。
|
void |
stopHotword()
停止热词监听。
|
void |
stopOneshotRecognizer(java.lang.String clientName)
停止对应的oneshot方法,如果已经开始进入识别阶段则会等待结果识别结果返回。
|
void |
stopRecognizer(java.lang.String clientName)
停止目前正在进行的Recognizer任务,并且等待结果的返回,
返回结果会调用
SpeechClientListener 中的相关方法。 |
void |
stopTTS()
停止tts。
|
void |
unInit()
反初始化,释放资源。
|
public static SpeechClient getInstance()
public void setClientListener(java.lang.String deviceName, SpeechClientListener clientListener)
deviceName
- 使用的设备名称。clientListener
- 语音识别回调实例。public void setLocalVadParams(java.lang.String clientName, VadType vadType, int speechThreshold, int silenceThreshold)
SpeechClientListener
通知。用于本地判断当开始识别任务时,
用户是否开始说话和是否已经没有说话。clientName
- 使用的设备名称。vadType
- vad的算法类型。VadType.SnrVad
,VadType.DNNBasedVad
speechThreshold
- 触发SpeechClientListener.onSpeechDetected()
的时间阈值,单位为ms。
检测到说话的时间超过这个阈值,认为是有人说话。silenceThreshold
- 触发SilenceDetected方法的时间阈值,单位为ms。检测到静音的时间超过这个阈值,
则会触发SilenceDetected。SpeechClientListener.onSpeechDetected()
,
SpeechClientListener.onLocalSilenceDetected()
public void setRemoteVadParams(java.lang.String clientName, int speechThreshold, int silenceThreshold)
SpeechClientListener
通知。用于远端判断当开始识别任务时,
用户是否开始说话和是否已经没有说话。clientName
- 使用的设备名称。speechThreshold
- 触发SpeechClientListener.onError(int)
的时间阈值,单位为ms。
检测到说话的时间超过这个阈值,认为是有人说话。silenceThreshold
- 触发SilenceDetected方法的时间阈值,单位为ms。检测到静音的时间超过这个阈值,
则会触发SilenceDetected。SpeechClientListener.onError(int)
,
SpeechClientListener.onRemoteSilenceDetected()
public void setLocationString(java.lang.String clientName, java.lang.String locStr)
clientName
- 使用设备名称。locStr
- 地理信息字符串,格式为 “国家,省,市,区,街道,门牌号,纬度,经度”,缺失的信息可以留空,
如:",,,,,,39.989602,116.316568"public void setQaControlParam(java.lang.String clientName, QaControlParam qaControlParam)
clientName
- 使用的设备名称。qaControlParam
- 对话控制信息。public void setApps(java.lang.String[] apps)
apps
- 设备上已安装的应用的名称列表,如:{"支付宝", "微信", "微博"}public void setVoiceAction(java.lang.String[] voiceAction)
voiceAction
- 希望被识别的离线语音命令词列表。public void setContacts(java.lang.String[] contacts)
contacts
- 联系人的名称列表。public void setKeywords(java.lang.String name, java.lang.String[] keywords)
name
- 关键词模型的名称,配合startXXXRecognizer使用。keywords
- 希望模型离线时能够识别的一些关键词。startMultiKeywordsRecognizer(String, String)
,
startMixRecognizer(String, String, String)
public void setPageSpecificVoiceAction(java.lang.String name, java.lang.String[] cmds)
该方法应用在需要实时创建离线命令词模型的场景。例如当app进入某一页时,可以调用此方法训练一个针对这一页的关键词 识别模型,并调用startOfflineRecognizer(String, String) 进行识别。 需要注意的是训练模型需要一定的CPU负载和时间,使用此方法前请考虑运算资源限制。
name
- 命令词模型的名称,配合startXXXRecognizer使用。cmds
- 希望模型离线时能够识别的一些命令词。public void unInit()
public boolean isReady()
public void setHotwordContent(java.lang.String content)
content
- 热词内容,比如"nihaowenwen","hixiaowen",需要是拼音或英文形式,中间无空格。public void addHotwordListener(HotwordListener listener)
listener
- HotwordListener实例。public void removeHotwordListener(HotwordListener listener)
listener
- HotwordListener实例。public void startHotword()
HotwordListener.onHotwordDetected()
。
如果没有设置回调,在检测到热词时,会发送广播action="com.mobvoi.broadcast.hotword"。public void stopHotword()
public void stopRecognizer(java.lang.String clientName)
SpeechClientListener
中的相关方法。clientName
- 使用的设备名称。SpeechClientListener.onError(int)
,
SpeechClientListener.onResult(String)
public void cancelReconizer(java.lang.String clientName)
clientName
- 使用的设备名称。public void startAsrRecognizer(java.lang.String clientName)
SpeechClientListener.onPartialTranscription(String)
返回clientName
- 使用的设备名称。public void startAsrRecognizerWithQueue(java.lang.String clientName, java.util.concurrent.BlockingQueue<byte[]> speechQueue)
SpeechClientListener.onPartialTranscription(String)
返回clientName
- 使用的设备名称。speechQueue
- 输入的语音数据流。public void startVoiceInput(java.lang.String clientName)
SpeechClientListener.onPartialTranscription(String)
返回clientName
- 使用的设备名称。public void startVoiceInputWithQueue(java.lang.String clientName, java.util.concurrent.BlockingQueue<byte[]> speechQueue)
SpeechClientListener.onPartialTranscription(String)
返回clientName
- 使用的设备名称。speechQueue
- 输入的语音数据流。public void startSemanticRecognizer(java.lang.String clientName)
clientName
- 使用的设备名称。public void startSemanticRecognizerWithQueue(java.lang.String clientName, java.util.concurrent.BlockingQueue<byte[]> speechQueue)
clientName
- 使用的设备名称。speechQueue
- 输入的语音数据流。public void startOneboxRecognizer(java.lang.String clientName)
clientName
- 使用的设备名称。public void startOneboxRecognizer(java.lang.String clientName, java.lang.String task)
clientName
- 使用的设备名称。task
- 限定搜索类型,目前请设置为null。public void startOneboxRecognizerWithQueue(java.lang.String clientName, java.lang.String task, java.util.concurrent.BlockingQueue<byte[]> speechQueue)
clientName
- 使用的设备名称。task
- 限定搜索类型,目前请设置为null。speechQueue
- 输入的语音数据流。public void startMixRecognizer(java.lang.String clientName)
clientName
- 使用的设备名称。public void startMixRecognizer(java.lang.String clientName, java.lang.String task)
clientName
- 使用的设备名称。task
- 限定搜索类型,目前请设置为null。public void startMixRecognizer(java.lang.String clientName, java.lang.String model, java.lang.String task)
clientName
- 使用的设备名称。model
- 设置离线识别模型名称,可以为null。See setKeywords(String, String[])
。task
- 限定搜索类型,目前请设置为null。public void startMixRecognizerWithQueue(java.lang.String clientName, java.lang.String model, java.lang.String task, java.util.concurrent.BlockingQueue<byte[]> speechQueue)
clientName
- 使用的设备名称。model
- 设置离线识别模型名称,可以为null。See setKeywords(String, String[])
。task
- 限定搜索类型,目前请设置为null。speechQueue
- 输入的语音数据流。public void startContactRecognizer(java.lang.String clientName)
setContacts(String[])
clientName
- 使用的设备名称。public void startContactRecognizerWithQueue(java.lang.String clientName, java.lang.String model, java.util.concurrent.BlockingQueue<byte[]> speechQueue)
setContacts(String[])
clientName
- 使用的设备名称。model
- 设置离线识别模型名称,可以为null。See setKeywords(String, String[])
。speechQueue
- 输入的语音数据流。public void startMultiKeywordsRecognizer(java.lang.String clientName, java.lang.String model)
SpeechClientListener.onPartialTranscription(String)
中返回,
一次启动会无限监听,直到cancelReconizer(String)
被调用。clientName
- 使用的设备名称。model
- 设置离线识别模型名称,只识别模型中的语音。See setKeywords(String, String[])
public void startMultiKeywordsWithQueue(java.lang.String clientName, java.lang.String model, java.util.concurrent.BlockingQueue<byte[]> speechQueue)
SpeechClientListener.onPartialTranscription(String)
中返回,
一次启动会无限监听,直到cancelReconizer(String)
被调用。clientName
- 使用的设备名称。model
- 设置离线识别模型名称,只识别模型中的语音。
See setKeywords(String, String[])
speechQueue
- 输入的语音数据流。public void startOfflineRecognizer(java.lang.String clientName)
clientName
- 使用的设备名称。setVoiceAction(String[])
,
setContacts(String[])
,
setApps(String[])
public void startOfflineRecognizer(java.lang.String clientName, java.lang.String model)
clientName
- 使用的设备名称。model
- 设置离线识别模型名称,可以为null。See setKeywords(String, String[])
。setVoiceAction(String[])
,
setContacts(String[])
,
setApps(String[])
public void startOfflineRecognizerWithQueue(java.lang.String clientName, java.lang.String model, java.util.concurrent.BlockingQueue<byte[]> speechQueue)
clientName
- 使用的设备名称。model
- 设置离线识别模型名称,可以为null。See setKeywords(String, String[])
。speechQueue
- 输入的语音数据流。setVoiceAction(String[])
,
setContacts(String[])
,
setApps(String[])
public void startOneshotSemanticRecognizer(java.lang.String clientName)
startSemanticRecognizer(String)
一致。
注意其对应的stop方法为stopOneshotRecognizer(String)
,
cancel 方法为cancelOneshotRecognizer(String)
。clientName
- 使用的设备名称。public void startOneshotOneboxRecognizer(java.lang.String clientName)
startOneboxRecognizer(String)
一致。
注意其对应的stop方法为stopOneshotRecognizer(String)
,
cancel 方法为cancelOneshotRecognizer(String)
。clientName
- 使用的设备名称。public void startOneshotOneboxRecognizerWithQueue(java.lang.String clientName, java.util.concurrent.BlockingQueue<byte[]> speechQueue)
public void startOneshotMixRecognizer(java.lang.String clientName)
startMixRecognizer(String)
一致。
注意其对应的stop方法为stopOneshotRecognizer(String)
,
cancel 方法为cancelOneshotRecognizer(String)
。clientName
- 使用的设备名称。public void startOneshotMixRecognizerWithQueue(java.lang.String clientName, java.util.concurrent.BlockingQueue<byte[]> speechQueue)
public void startOneshotOfflineRecognizer(java.lang.String clientName)
startOfflineRecognizer(String)
一致。
注意其对应的stop方法为stopOneshotRecognizer(String)
,
cancel 方法为cancelOneshotRecognizer(String)
。clientName
- 使用的设备名称。public void stopOneshotRecognizer(java.lang.String clientName)
clientName
- 使用的设备名称。public void cancelOneshotRecognizer(java.lang.String clientName)
clientName
- 使用的设备名称。public void init(android.content.Context appContext, java.lang.String appkey)
appContext
- Android上下文。appkey
- 平台对应的app key。public void init(android.content.Context appContext, java.lang.String appkey, boolean enableOnline, boolean enableOffline)
appContext
- Android上下文。appkey
- 平台对应的app key。enableOnline
- 是否开启在线识别功能。enableOffline
- 是否开启离线识别功能。public void enableAutoSyncContacts()
public java.lang.String getContactNameByNumber(java.lang.String number)
enableAutoSyncContacts()
。number
- 电话号码public java.util.List<ContactBean> getContactsByName(java.lang.String name)
enableAutoSyncContacts()
。name
- 联系人的姓名。ContactBean
组成的列表,没有则为空列表。public void startTTS(TTSRequest request)
request
- 参数对象,包含了所有tts合成,播放所需参数。public void startTTS(TTSRequest request, TTSListener ttsListener)
request
- 参数对象,包含了所有tts合成,播放所需参数。ttsListener
- tts的状态回调。public void stopTTS()
public void startTextSearch(java.lang.String text, SearchListener callback)
text
- 输入文本。callback
- 对应的任务回调。public void startTextSearch(java.lang.String text, java.lang.String location, SearchListener callback)
text
- 输入文本。location
- 位置信息,与setLocationString(String, String)
中位置格式一致。callback
- 对应的任务回调。public void startTextSearch(java.lang.String text, java.lang.String location, QaControlParam qaControlParam, SearchListener callback)
text
- 输入文本。location
- 位置信息,与setLocationString(String, String)
中位置格式一致。qaControlParam
- 对话控制信息callback
- 对应的任务回调。public void startTextSemantic(java.lang.String text, SearchListener callback)
text
- 输入文本。callback
- 对应的任务回调。public java.lang.String getErrorDescription(int code)
code
- SpeechClientListener.onError(int)
中的错误码。public void enableLocalSilence(boolean enableLocalSilence)
enableLocalSilence
- true为开启本地静音检测,false为关闭。 默认为开启。public void enableRemoteSilence(boolean enableRemoteSilence)
enableRemoteSilence
- true为开启云端静音检测,false为关闭。 默认为开启。