HARIX RCU v1.2.0
smart_voice.h 文件参考

语音 AI 模块,支持语音唤醒、语音命令词、语音在线/离线听写,语音合成,语音问答以及文本输入问答等功能。 更多...

类型定义

typedef void(* AsrResultCallback) (void *context, const char *asrText, const char *questionId, int wakeup_status, int asr_flag)
 语音识别结果的函数指针,对应识别的文本是实时识别之后返回给注册者 更多...
 
typedef void(* TtsAudioStreamCallback) (void *context, const unsigned char *data, int size, int audioType, const char *text, int index, const char *questionId, const char *ttsVendor, const char *location)
 文字转语音的语音数据的函数指针,对应音频数据分多个语音片段返回给注册者 更多...
 
typedef void(* PlayStatusCallback) (void *context, int status, const char *subText, const char *questionId)
 TTS音频数据播放的状态的函数指针 更多...
 
typedef void(* PlayDurationCallback) (void *context, unsigned long long duraion)
 TTS音频数据播放进度的函数指针 更多...
 
typedef void(* QACallback) (void *context, const char *question, const char *answer, const char *intent, const char *source)
 语音输入或文本输入内容的自然语言处理结果的函数指针 更多...
 

函数

bool HarixRcu_SVoice_StartAsr ()
 开启语音识别的接口 更多...
 
void HarixRcu_SVoice_PauseAsr ()
 暂停语音识别的接口 更多...
 
void HarixRcu_SVoice_ResumeAsr ()
 恢复语音识别的接口 更多...
 
void HarixRcu_SVoice_StopAsr ()
 停止语音识别的接口 更多...
 
bool HarixRcu_SVoice_IsAsrPaused ()
 语音识别是否已暂停的接口 更多...
 
void HarixRcu_SVoice_SetAsrMode (AsrMode asrmode)
 设置ASR工作模式(听写模式和实时模式)的接口 更多...
 
void HarixRcu_SVoice_SetWakeupStatus (bool needWakeup)
 使能ASR唤醒的接口 更多...
 
bool HarixRcu_SVoice_GetWakeupStatus ()
 获取ASR唤醒使能状态的接口 更多...
 
bool HarixRcu_SVoice_PostTextToNLP (const char *text, const char *lang)
 将需要自然语言处理的文本内容推送给自然语言处理器的接口 更多...
 
void HarixRcu_SVoice_SubscribeAsrResultCallback (void *context, AsrResultCallback streamingRecognizeCallback)
 注册ASR识别内容的回调接口 更多...
 
void HarixRcu_SVoice_UnsubscribeAsrResultCallback ()
 取消ASR识别内容的回调接口 更多...
 
void HarixRcu_SVoice_SubscribeQACallback (void *context, QACallback callback)
 注册Switch QA内容的回调接口 更多...
 
void HarixRcu_SVoice_UnsubscribeQACallback ()
 取消Switch QA内容的回调接口 更多...
 
bool HarixRcu_SVoice_PlayTts (const char *text, const char *questionId, bool canInturpeted)
 开始文本播放(其中包括文本转语音,以及对语音的播放)的接口 更多...
 
bool HarixRcu_SVoice_StopPlay ()
 停止文本播放的接口 更多...
 
bool HarixRcu_SVoice_SynthesizeTts (const char *text, const char *questionId, bool canInturpeted)
 开文本合成音频的接口,合成的音频通过注册的回调返回给调用者 更多...
 
bool HarixRcu_SVoice_StopSynthesize ()
 停止文本合成音频的接口 更多...
 
void HarixRcu_SVoice_SubscribeTtsAudio (void *context, TtsAudioStreamCallback callback)
 注册文本转音频的音频数据回调接口 更多...
 
void HarixRcu_SVoice_UnsubscribeTtsAudio ()
 取消注册文本转音频的音频数据回调接口 更多...
 
void HarixRcu_SVoice_SubscribePlayerStatusChange (void *context, PlayStatusCallback callback)
 注册音频播放状态的回调接口 更多...
 
void HarixRcu_SVoice_UnsubscribePlayerStatusChange ()
 取消音音频播放状态回调接口 更多...
 
void HarixRcu_SVoice_SubscribePlayerDurationChange (void *context, PlayDurationCallback callback)
 注册音频播放时长的回调接口 更多...
 
void HarixRcu_SVoice_UnsubscribePlayerDurationChange ()
 取消音频播放时长回调接口 更多...
 
void HarixRcu_SVoice_EnableTtsDebug (bool isEnable)
 设置TTS debug的使能接口 更多...
 
void HarixRcu_SVoice_EnableTtsDump (bool isEnable)
 设置TTS dump音频的使能接口 更多...
 
void HarixRcu_SVoice_EnableAsrDebug (bool isEnable)
 设置ASR debug的使能接口 更多...
 
void HarixRcu_SVoice_EnableAsrDump (bool isEnable)
 设置ASR dump音频的使能接口 更多...
 

详细描述

语音 AI 模块,支持语音唤醒、语音命令词、语音在线/离线听写,语音合成,语音问答以及文本输入问答等功能。

svoice 是 smart voice 的缩写,智能语音,包括语音唤醒、语音命令词、语音在线/离线听写,语音合成,语音问答以及文本输入问答。
语音识别以及自然语言处理 :
语音识别,语音识别中语音的采集是内置在SDK,开发者开启了ASR功能之后SDK中就会进行语音输入的采集。其中语音识别按流式的方式返回识别的结果,同时对识别的文本使用自然语言处理得到匹配的答案并返回该答案;

语音合成支持在SDK内部对合成的音频进行播放,亦可以将合成的音频提供给外部播放器进行播放,方便开发者根据实际场景进行切换。为了提高合成的效率,合成的音频数据是通过流式的方式返回的,而非一次性返回整个音频数据;
使能音频播放器的工作流程:

关闭音频播放器的工作流程:

语音唤醒模式:

类型定义说明

◆ AsrResultCallback

typedef void(* AsrResultCallback) (void *context, const char *asrText, const char *questionId, int wakeup_status, int asr_flag)

语音识别结果的函数指针,对应识别的文本是实时识别之后返回给注册者

参数
context上下文对象实例,用于调用者在回调函数中访问自己的对象
asrTextASR识别的文本内容
questionId标识当前ASR会话的ID,作为本次会话的唯一标识
wakeup_status唤醒状态,使用命令词唤醒的时候,用于区分当前语音是否需要唤醒
asr_flag当前ASR会话的开始和结束标识

◆ TtsAudioStreamCallback

typedef void(* TtsAudioStreamCallback) (void *context, const unsigned char *data, int size, int audioType, const char *text, int index, const char *questionId, const char *ttsVendor, const char *location)

文字转语音的语音数据的函数指针,对应音频数据分多个语音片段返回给注册者

参数
context上下文对象实例,用于调用者在回调函数中访问自己的对象
data对应文字转化的音频数据
size对应文字转化的音频数据的大小
audioType音频格式,目前为固定的wav格式
text对应的文字内容
index当前语音片段的index,默认开始为0,结束为100,其余均为99
questionId标识当前TTS会话的ID,作为本次会话的唯一标识
ttsVendor当前文字转语音的供应商
location当前文字转语音的合成位置(本地或者云端)

◆ PlayStatusCallback

typedef void(* PlayStatusCallback) (void *context, int status, const char *subText, const char *questionId)

TTS音频数据播放的状态的函数指针

参数
context上下文对象实例,用于调用者在回调函数中访问自己的对象
status音频播放的状态
subText音频对应的文本内容
questionId标识当前音频来自那个TTS会话,作为视频音频的唯一标识

◆ PlayDurationCallback

typedef void(* PlayDurationCallback) (void *context, unsigned long long duraion)

TTS音频数据播放进度的函数指针

参数
context上下文对象实例,用于调用者在回调函数中访问自己的对象
duraion音频播放的时长

◆ QACallback

typedef void(* QACallback) (void *context, const char *question, const char *answer, const char *intent, const char *source)

语音输入或文本输入内容的自然语言处理结果的函数指针

参数
context上下文对象实例,用于调用者在回调函数中访问自己的对象
question问题内容(输入的文本或者ASR识别的文本)
answer对应问题的答案
intent对应问题的意图
sourceQA的来源

函数说明

◆ HarixRcu_SVoice_StartAsr()

bool HarixRcu_SVoice_StartAsr ( )

开启语音识别的接口

返回
返回值
true开启语音识别成功
false开启语音识别失败

◆ HarixRcu_SVoice_PauseAsr()

void HarixRcu_SVoice_PauseAsr ( )

暂停语音识别的接口

◆ HarixRcu_SVoice_ResumeAsr()

void HarixRcu_SVoice_ResumeAsr ( )

恢复语音识别的接口

◆ HarixRcu_SVoice_StopAsr()

void HarixRcu_SVoice_StopAsr ( )

停止语音识别的接口

◆ HarixRcu_SVoice_IsAsrPaused()

bool HarixRcu_SVoice_IsAsrPaused ( )

语音识别是否已暂停的接口

返回
返回值
true语音识别已暂停
false语音识别未暂停

◆ HarixRcu_SVoice_SetAsrMode()

void HarixRcu_SVoice_SetAsrMode ( AsrMode  asrmode)

设置ASR工作模式(听写模式和实时模式)的接口

参数
mode工作模式.
0—听写模式
1—实时模式 默认实时模式

◆ HarixRcu_SVoice_SetWakeupStatus()

void HarixRcu_SVoice_SetWakeupStatus ( bool  needWakeup)

使能ASR唤醒的接口

参数
needWakeup是否需要唤醒
false 不需要唤醒词唤醒,ASR响应任何输入的音频内容
true 需要唤醒词唤醒,ASR仅响应唤醒词的音频内容

◆ HarixRcu_SVoice_GetWakeupStatus()

bool HarixRcu_SVoice_GetWakeupStatus ( )

获取ASR唤醒使能状态的接口

返回
返回值
true语音识别仅响应特定的唤醒词词
false语音识别正常的听转写

◆ HarixRcu_SVoice_PostTextToNLP()

bool HarixRcu_SVoice_PostTextToNLP ( const char *  text,
const char *  lang 
)

将需要自然语言处理的文本内容推送给自然语言处理器的接口

参数
text文本内容.
lang文本的语言
返回
返回值
true文本内容推送成功
false文本内容推送失败

◆ HarixRcu_SVoice_SubscribeAsrResultCallback()

void HarixRcu_SVoice_SubscribeAsrResultCallback ( void *  context,
AsrResultCallback  streamingRecognizeCallback 
)

注册ASR识别内容的回调接口

参数
context上下文对象实例,用于调用者在回调函数中访问自己的对象
callbackASR识别内容的回调

◆ HarixRcu_SVoice_UnsubscribeAsrResultCallback()

void HarixRcu_SVoice_UnsubscribeAsrResultCallback ( )

取消ASR识别内容的回调接口

◆ HarixRcu_SVoice_SubscribeQACallback()

void HarixRcu_SVoice_SubscribeQACallback ( void *  context,
QACallback  callback 
)

注册Switch QA内容的回调接口

参数
context上下文对象实例,用于调用者在回调函数中访问自己的对象
callbackSwitch QA内容的回调

◆ HarixRcu_SVoice_UnsubscribeQACallback()

void HarixRcu_SVoice_UnsubscribeQACallback ( )

取消Switch QA内容的回调接口

◆ HarixRcu_SVoice_PlayTts()

bool HarixRcu_SVoice_PlayTts ( const char *  text,
const char *  questionId,
bool  canInturpeted 
)

开始文本播放(其中包括文本转语音,以及对语音的播放)的接口

参数
text需要播放的文本内容
questionId标识当前播放的唯一ID
canInturpeted是否打断当前其他的播放
返回
返回值
true播放正常.
false播放失败.

◆ HarixRcu_SVoice_StopPlay()

bool HarixRcu_SVoice_StopPlay ( )

停止文本播放的接口

返回
返回值
true操作正常.
false操作异常.

◆ HarixRcu_SVoice_SynthesizeTts()

bool HarixRcu_SVoice_SynthesizeTts ( const char *  text,
const char *  questionId,
bool  canInturpeted 
)

开文本合成音频的接口,合成的音频通过注册的回调返回给调用者

参数
text需要合成音频的文本内容
questionId标识音频的唯一ID
canInturpeted是否打断当前其他的合成
返回
返回值
true合成正常.
false合成失败.

◆ HarixRcu_SVoice_StopSynthesize()

bool HarixRcu_SVoice_StopSynthesize ( )

停止文本合成音频的接口

返回
返回值
true停止合成操作正常.
false停止合成操作失败.

◆ HarixRcu_SVoice_SubscribeTtsAudio()

void HarixRcu_SVoice_SubscribeTtsAudio ( void *  context,
TtsAudioStreamCallback  callback 
)

注册文本转音频的音频数据回调接口

参数
context上下文对象实例,用于调用者在回调函数中访问自己的对象
callback文本转音频的音频数据的回调函数

◆ HarixRcu_SVoice_UnsubscribeTtsAudio()

void HarixRcu_SVoice_UnsubscribeTtsAudio ( )

取消注册文本转音频的音频数据回调接口

◆ HarixRcu_SVoice_SubscribePlayerStatusChange()

void HarixRcu_SVoice_SubscribePlayerStatusChange ( void *  context,
PlayStatusCallback  callback 
)

注册音频播放状态的回调接口

参数
context上下文对象实例,用于调用者在回调函数中访问自己的对象
callback音频播放状态的回调

◆ HarixRcu_SVoice_UnsubscribePlayerStatusChange()

void HarixRcu_SVoice_UnsubscribePlayerStatusChange ( )

取消音音频播放状态回调接口

◆ HarixRcu_SVoice_SubscribePlayerDurationChange()

void HarixRcu_SVoice_SubscribePlayerDurationChange ( void *  context,
PlayDurationCallback  callback 
)

注册音频播放时长的回调接口

参数
context上下文对象实例,用于调用者在回调函数中访问自己的对象
callback音频播放时长的回调

◆ HarixRcu_SVoice_UnsubscribePlayerDurationChange()

void HarixRcu_SVoice_UnsubscribePlayerDurationChange ( )

取消音频播放时长回调接口

◆ HarixRcu_SVoice_EnableTtsDebug()

void HarixRcu_SVoice_EnableTtsDebug ( bool  isEnable)

设置TTS debug的使能接口

参数
isEnabledebug的使能

◆ HarixRcu_SVoice_EnableTtsDump()

void HarixRcu_SVoice_EnableTtsDump ( bool  isEnable)

设置TTS dump音频的使能接口

参数
isEnabledump的使能

◆ HarixRcu_SVoice_EnableAsrDebug()

void HarixRcu_SVoice_EnableAsrDebug ( bool  isEnable)

设置ASR debug的使能接口

参数
isEnabledebug的使能

◆ HarixRcu_SVoice_EnableAsrDump()

void HarixRcu_SVoice_EnableAsrDump ( bool  isEnable)

设置ASR dump音频的使能接口

参数
isEnabledump的使能