logo
电话400 898 2016
预约试用
开放平台
En
尊敬的开发者,您好! 标贝科技的开发文档已更换新的地址,旧版文档地址将会在2023年12月31日下线, 给您带来不便,敬请谅解! 立即查看
产品简介 产品简介
基本概念 基本概念
平台新手指引 平台新手指引
计价模式 计价模式
开发者文档下拉
开放平台计价
定制服务计价
获取访问令牌 获取访问令牌
语音合成 语音合成
开发者文档下拉
接口说明
发音人列表
短文本合成 开发者文档下拉
Android SDK
iOS SDK
C++(Linux) SDK
RESTful API
Websocket API
长文本合成 开发者文档下拉
长文本合成RESTful API
长文本合成Websocket API
离线合成 开发者文档下拉
模型文件说明
离线合成(普通版) Android SDK
离线合成(普通版) iOS SDK
离线合成(精品版) Android SDK
离线合成(精品版) iOS SDK
XML标签
SSML标签
语音合成时间戳功能
语音识别 语音识别
开发者文档下拉
音频格式说明
一句话识别 开发者文档下拉
RESTful API
Websocket API
Android SDK
iOS SDK
实时长语音识别 开发者文档下拉
Websocket API
Android SDK
iOS SDK
录音文件识别 开发者文档下拉
RESTful API
自学习工具 开发者文档下拉
热词
个性化模型
声音复刻 声音复刻
开发者文档下拉
定制模型 开发者文档下拉
RESTful API
Android SDK
iOS SDK
定制声音合成 开发者文档下拉
短文本合成RESTful API
长文本合成Websocket API
声音转换 声音转换
开发者文档下拉
发音人列表
Websocket API
Android SDK
iOS SDK
离线声音转换 离线声音转换
开发者文档下拉
发音人列表
Android SDK
iOS SDK
声纹识别 声纹识别
开发者文档下拉
RESTful API
声音理解 声音理解
开发者文档下拉
RESTful API
协议规则 协议规则
开发者文档下拉
平台服务协议
平台通用规则
法律声明及隐私政策
服务等级协议SLA
常见问题 常见问题
开发者文档下拉
语音合成
语音识别

声音转换iOS SDK

SDK 下载地址

下载地址: https://github.com/data-baker/BakerIosSdks

⾳频要求

  • · ⽀持⾳频⽂件的编码格式及⽂件名的后缀: pcm。
  • · ⽀持⾳频⽂件的采样率/位深: 16000Hz/16bit。
  • · ⽀持的语⾔:中⽂普通话。
  • · 声道:单声道。

集成SDK

  • 1. 兼容性说明
    系统:iOS 9.0以上版本
    CPU架构:arm64 arm64e armv7 armv7s
    添加隐私麦克风权限:
    Privacy - Microphone Usage Description:使用麦克风检测声音
  • 2. 通过Pod方式集成
    Pod DBAudioSDK/DBVoiceTransferKit , ‘xxx’ ; ‘xxx’ 指的是SDK的版本号; 
    手动导入资源文件,资源目录如下图,具体可参照demo
  • 3. 引用SDK的头文件
    声音转换类的头文件
    #import “DBVoiceTransferUtil.h”

SDK 调用说明



  • 1. 声音转换调用
    • 1. 鉴权: 实例化DBVoiceDetectionUtil对象,调用“setupClientId:clientSecret:block:” 的方法进行鉴权,鉴权成功后可以使用服务;
    • 2. 配置声音转换的相关参数,具体可参照“参数说明”;
    • 3. 开启声音转换:调用开启声音转换后,a.SDK会使用麦克风权限,录制声音进行声音转换,声音转换结果通过DBTransferProtocol进行回调;b.指定是否需要播放;
    • 4. 结束声音转换:调用结束声音转换,会关闭麦克风和服务端的连接;
  • 2. 声音文件转换调用
    • 1. 鉴权: 同声音转换调用;
    • 2. 配置声音转换的相关参数;
    • 3. 开启文件转换:调用开启声音文件转换方法,需要传入声音文件的路径,并指定是否需要播放;
    • 4. 结束文件声音转换: 调用结束声音文件转换并关闭服务端的连接;

调用代码示例

  • 1. 鉴权示例
    [[DBVoiceTransferUtil shareInstance] setupClientId:clientId clientSecret:clientSecret block:^(NSString * _Nullable token, NSError * _Nullable error) {
    if (error) {
    [[XCHudHelper sharedInstance] hideHud];
    NSLog(@"获取token失败:%@",error);
    NSString *msg = [NSString stringWithFormat:@"获取token失败:%@",error.description];
    return;
    }
    }];
    
  • 2. 转换参数设置示例
    _voiceTransferUtil = [DBVoiceTransferUtil shareInstance];
    _voiceTransferUtil.log = YES;
    _voiceTransferUtil.voiceName = @"XXX";
    _voiceTransferUtil.delegate = self;  
  • 3. 实时语音转换调用示例
    // 开始
    [self.voiceTransferUtil startTransferNeedPlay:YES];
    // 结束
    [self.voiceTransferUtil endTransferAndCloseSocket];
    
  • 4. 文件转换调用示例
    // 开启声音转换
    [self.voiceTransferUtil startTransferWithFilePath:@"path" needPaley:YES];
    // 结束声音转换
    [self.voiceTransferUtil endFileTransferAndCloseSocket];
  • 5. 回调函数处理示例
    // 错误信息回调
    - (void)onError:(NSInteger)code message:(NSString *)message{xxx}
    
    // 开启声音转换
    - (void)readyToTransfer{xxx}
    
    // 麦克风录音数据回调
    - (void)microphoneAudioData:(NSData *)data isLast:(BOOL)isLast {xxx}
    
    // 声音分贝值返回,回调
    - (void)dbValues:(NSInteger)db{xxx}
    
    // 转换数据回调
    - (void)transferCallBack:(NSData *)data isLast:(BOOL)isLast {xxx}
    
    /// 开启播放回调
    - (void)readlyToPlay {xxx}
    
    ///  结束播放回调
    - (void)playFinished {xxx}
    

参数说明

  • SDK关键类
    类接口名称 说明
    DBVoiceDetectionUtil 声音转换的核心类: 包含鉴权,声音转换,文件声音转换
    DBTransferModel 数据model类,封装服务端返回的数据
    DBTransferEnum 错误枚举类,封装sdk客户端的错误
    DBTransferProtocol 声音转换回调协议,包含声音转换相关回调方法

  • 声音转换配置参数说明
    参数名 参数类型 是否必填 说明
    log BOOL 1.打印日志 0:不打印日志(打印日志会在沙盒中保存一份text,方便我们查看,上线前要置为NO);
    enableVad BOOL true代表启动服务端vad功能,默认false。如果启动系统会根据输入音频进行检测,过滤环境噪音。否则直接将原始输入音频进行转换。
    voiceName NSString 发音人参数即转换的目标声音

  • 转换结果参数说明
    参数名 参数类型 是否必填 说明
    errcode int 错误码,0 代表成功其他代表识别,参考错误码说明。
    errmsg string 错误信息描述
    traceid string 会话唯一id,用于追踪定位问题
    lastpkg bool 是否为最后一包,当时发送最后一包数据时设置为true 告诉调用方输出完成

  • 调用方法说明
    方法名 说明
    - (void)setupClientId:(NSString *)clientId clientSecret:(NSString *)clientSecret block:(DBAuthenticationBlock)block; 鉴权,鉴权成功会返回token,失败会返回错误信息
    - (void)startTransferNeedPlay:(BOOL)needPlay 开始转换,是否需要播放@param needPlay yes: 需要播放; no:不需要播放
    - (void)endTransferAndCloseSocket; 结束转换并且并且关闭服务端连接
    - (void)startTransferWithFilePath:(NSString *)filePath needPaley:(BOOL)needPlay; 本地文件转换,读取本地文件
    @param needPlay yes: 需要播放; no:不需要播放
    - (void)endFileTransferAndCloseSocket; 结束文件变声转换并且关闭服务端连接
    - (NSString *)getSavePath:(NSString *)fileName; 默认保存在Temp文件夹下
    @param fileName 文件名称
    - (void)startServeConnetNeedPlay:(BOOL)needPlay; 先开启网络连接,接收到网络连接成功回调后再通过`webSocketPostData:isEnd`发送音频数据
    - (void)webSocketPostData:(NSData *)audioData isEnd:(BOOL)isEnd; 向服务端发送数据
    @param audioData 音频数据
    @param isEnd 最后一包数据时isEnd设置为Yes,否则设置为NO
    - (void)stopPlay; 停止播放

回调方法DBTransferProtocol说明

  • 方法名称 参数说明
    - (void)readyToTransfer; 开启声音转换
    - (void)microphoneAudioData:(NSData *)data isLast:(BOOL)isLast; 回调麦克风录制的数据 ,isLast: yes,最后一包,NO,非最后一包
    - (void)transferCallBack:(NSData *)data isLast:(BOOL)isLast; 声音转换结果回调,isLast: yes,最后一包,NO,非最后一包
    - (void)onError:(NSInteger)code message:(NSString *)message; 错误回调 code:错误码 message:错误信息
    - (void)readlyToPlay; 准备好了,开始播放了的回调
    - (void)playFinished; 播放完成回调
    - (void)dbValues:(NSInteger)db; 获取麦克风的音频分贝值回调

错误码

  • 客户端错误码
    错误码 枚举状态 含义
    19110001 DBErrorStateFileReadFailed 文件读取失败
    19110002 DBErrorStateParsing 网络数据解析失败
    19110003 DBErrorStateMicrophoneNoGranted 没有麦克风权限

  • 服务端错误码
    错误码 含义 类别
    0 成功 请求参数错误
    10000 ws数据包解析错误
    10001 ws数据包json解析错误
    10002 请求参数缺少access token
    10003 access token过期或不合法
    10004 请求参数缺少 voice name
    10005 voice name 不存在
    20000 引擎资源不足,拒绝新建会话。 服务端错误
    20001 声音转换出错
    20002 动态内存申请失败
    20003 向客户端推送响应失败
    20004 其他未定义的内部错误
    30000 会话进行时客户端主动关闭 客户端错误
    30001 会话空闲超时,超过一定时间没有数据传输导致会话空闲超时,主动断开连接。