口型驱动使用独立的SDK模块,FUAvatarSpeechService内部会进行鉴权及初始化工作(资源配置如下)。驱动提供三种驱动方式:1、时间戳方式(输入时间戳即可驱动口型)2、音频+文本方式(输入音频+文本驱动口型)3、纯音频方式(输入音频驱动口型)这三种方式都有对应的配置文件,初始化时可根据业务进行配置。

互动模块参考流程:1. 用户输入文本或音频 ----2. 经过内部ASR/NLP/TTS解析得到输入内容的答案(包括音频和时间戳----3.输入数据查询口型(SDK----4.使用播放器播放输出的音频(可自定义----5.输入当前播放进度进行口型渲染(SDK)

ASR:语音识别,是将声音转化成文字的过程。

NLP:自然语言处理,是理解和处理文本的过程

TTS:语音合成,是把文本转化成语音的过程

资源配置

资源位于Resource/STA文件夹下,主要有以下五个文件:

defaultBSConfig.bin:形象对应的口型配置文件。

data_decoder.bin 中英文解码配置文件,使SDK具有时间戳驱动口型的能力,按需加载。

data_asr.bin 语音识别功能配置文件,使SDK具有音频驱动口型的能力,按需加载。

data_align.bin 语音对齐功能配置文件,使SDK具有文本驱动口型的能力,按需加载。

alignmap.bin 文本驱动口型模式的特殊词汇映射,按需加载。

如何使用

我们已经封装了FUAvatarSpeechService可实现简单的口型驱动功能。

1.    初始化


// 懒加载方式,FUAvatarSpeechService内部init方法会调用


2.    销毁


[[FUAvatarSpeechService shareService] destroy];


3.    进入口型驱动模块


// 进入口型驱动控制器时需要调用
[[FUAvatarSpeechService shareService] enterAvatarSpeech];


4.    退出口型驱动模块


[[FUAvatarSpeechService shareService] exitAvatarSpeech];


5.    对话播报(输入为文本)


  [[FUAvatarSpeechService shareService] dialogWithText:@"输入文本" voiceName:@"音色ID" nlpCallback:^(NSError * _Nonnull error, NSString * _Nonnull nlpText) {
    // NLP解析完成
  } broadcastBeginHandle:^(NSError * _Nonnull error) {
    // 播报开始
  } broadcastComplteHandle:^(NSError * _Nonnull error, BOOL isCanceled) {
    // 播报完成
}];


6.    对话播报(输入为语音)


[[FUAvatarSpeechService shareService] dialogWithAudio:@"输入音频" voiceName:@"音色ID" asrCallback:^(NSError * _Nonnull error, NSString * _Nonnull asrText) {
    // ASR解析完成
} nlpCallback:^(NSError * _Nonnull error, NSString * _Nonnull nlpText) {
    // NLP解析完成
} broadcastBeginHandle:^(NSError * _Nonnull error) {
    // 播报开始
} broadcastComplteHandle:^(NSError * _Nonnull error, BOOL isCanceled) {
    // 播报完成
}];


7.    取消播报


// 建议每次播报前调用
[[FUAvatarSpeechService shareService] cancelBroadcast];


 


< 上一页: 快速集成
下一页: 常见问题 >