iOS SDK

本文介绍了如何使用阿里云智能语音服务提供的iOS NUI SDK,包括SDK下载安装、关键接口及代码示例。

前提条件

下载安装

  1. 下载SDK和示例代码

    说明

    请下载后在样例初始化代码中替换您的阿里云账号信息、appkey和token才可运行。为方便集成,2.5.14版本后iOS接口使用纯Object-C接口,不再使用C++混合接口。

  2. 解压ZIP包,将zip包中的nuisdk.framework添加到您的工程中,并在工程Build Phases的Link Binary With Libraries中添加nuisdk.framework。请确保在编译配置的General > Frameworks, Libraries, and Embedded Content中配置nuisdk.framework为Embed & Sign。

  3. 使用Xcode打开此工程,工程中提供了参考代码以及一些直接可使用的工具类,例如音频播放录制和文件操作,您可以直接复制源码到您的实际工程进行使用。其中语音合成示例代码在TTSViewController类中。

SDK关键接口

  • tts_initialize:初始化SDK

/**
     * 初始化SDK,SDK为单例,请先释放后再次进行初始化。请勿在UI线程调用,意外下可能引起阻塞。
     * @param parameters: 初始化参数,参考接口说明
     * @param level: log打印级别,值越小打印越多
     * @param save_log: 是否保存log为文件,存储目录为parameter中的debug_path字段值
     * @return 参考错误码
     */
    -(int) nui_tts_initialize:(const char *)parameters
                 logLevel:(NuiSdkLogLevel)level
                  saveLog:(BOOL)save_log;
  • nui_tts_play: 开始播放

/**
     * 开始播放
     * @param priority: 任务优先级,请使用"1"
     * @param taskid: 任务id,可传入32个字节的uuid或者传入空内容由SDK自动生成
     * @param text: 要播放的文本内容
     * @return 参考错误码
     */
    -(int) nui_tts_play:(const char *)priority
             taskId:(const char *)taskid
               text:(const char *)text;
  • nui_tts_cancel:取消播放

/**
     * 取消合成任务
     * @param taskid: 传入想要停止的任务id,如果为空则取消所有任务
     * @return 参考错误码
     */
    -(int) nui_tts_cancel:(const char *)taskid;
  • nui_tts_pause:暂停播放

/**
     * 暂停
     * @return 参考错误码
     */
    -(int) nui_tts_pause;
  • nui_tts_resume:恢复播放

/**
     * 恢复暂停的任务
     * @return 参考错误码
     */
    -(int) nui_tts_resume;
  • nui_tts_set_param:设置语音合成参数

/**
     * 以键值对形式设置参数
     * @param param: 参数名,参考接口说明
     * @param value: 参数值,参考接口说明
     * @return 参考错误码
     */
    -(int) nui_tts_set_param:(const char *)param
                   value:(const char *)value;
  • nui_tts_get_param:获取参数

/**
     * 获取参数值
     * @param param: 参数名,参考接口说明
     * @return 参数值
     */
    -(const char *) nui_tts_get_param:(const char *)param;
  • nui_tts_release: 释放SDK资源

/**
     * 释放SDK
     * @return 参考错误码
     */
    -(int) nui_tts_release;
  • NeoNuiTtsDelegate 事件代理

    • onNuiTtsUserdataCallback:在回调中提供音频数据。

/**
     * 当开始识别时,此回调被连续调用,App需要在回调中进行语音数据填充,语音数据来自App的录音
     * @param info: 在使用时间戳功能时返回时间戳结果,json格式
     * @param info_len: info字段的数据长度
     * @param audioData: 合成的语音数据
     * @param len: 合成的语音长度
     * @param taskid: 本次合成的任务id
     */
    - (void)onNuiTtsUserdataCallback:(char*)info infoLen:(int)info_len buffer:(char*)buffer len:(int)len taskId:(char*)task_id;
    • onNuiTtsEventCallback: 事件回调。

/**
     * SDK主要事件回调
     * @param event: 回调事件,参考接口说明
     * @param taskid: 本次合成的任务id
     * @param code: 参考错误码,TTS_EVENT_ERROR时有效
     */
    - (void)onNuiTtsEventCallback:(NuiSdkTtsEvent)event taskId:(char*)taskid code:(int)code;
    • NuiSdkTtsEvent事件列表:

名称

说明

TTS_EVENT_START

语音合成开始,准备播放。

TTS_EVENT_END

语音合成播放结束

TTS_EVENT_CANCEL