icon-auth-user dollor setting alipay success appmanage user order logout workorder cart mail

 

1 概述

语音转写Long Form Automatic Speech Recognition):基于科大讯飞独立研究的深度全序列卷积神经网络语音识别框架(Deep Fully Convolutional Neural Network, DFCNN),针对语音的长时相关性进行语言建模,将音频数据转换成文本数据,为后续的信息处理和数据挖掘提供基础。

具体表现形式为,将多种格式的长段音频文件(5小时以内)转换成包含时间戳、词句置信度、词属性以及句子标志的文字信息。文字信息提供分词形式以及整段文字形式以及发音人分离功能。

2 新手入门

 1步:创建账号&应用

进入讯飞开放平台主页http://www.xfyun.cn/或者对应的产品页,点击右上角登陆或者注册按钮,完成登陆操作。

点击右上角用户名下拉框的“我的应用”,进入应用列表页点击“创建新应用”应用平台选择 Java或者Web API,并填写相关应用信息。

 

2步:开通&购买服务

创建完应用之后之后,页面会自动跳转到“控制台”, 点击“添加新服务”,选择“语音转写”,然后进入服务管理,可以领取试用时长或者购买正式时长。

 

3 获取APPidsecret_key以及SDK下载

购买完成后,在“控制台”的对应的应用上,有SDK下载按钮,点击“SDK下载”按钮,进入SDK下载页,可以下载转写的SDK。若为WEBAPI,可以直接点开技术文档查看接口文档,另外在“语音转写”服务管理中,可以查看密钥,请牢记应用唯一标示APPid转写服务访问秘钥secret_key

  

4 配置方法

对于Java版SDK,通过如下配置,可以将SDK中的内容导入至工程。下载开发包组件完成后,将开发包组件中的JAR文件放置于“<工程路径>/lib”中。进入Eclipse,在选项栏中进入Project -> Properties,在左边选择“Java Build Path”,右边的tab中选择“Libraries”,可见如下界面:移除报错的旧版jar包

点击右边的“Add JARs”,并将刚刚添加到工程里的开发包组件添加,点击“OK”,即完成了开发包组件的添加

3 Java SDK V4.0版 开发手册

详细开发例程,请参考SDK包中的lfasr-sdk-demo展示。注意在实际开发中,需要先在config.properties中配置一些信息(appid, secretkey等等)。

使用前请注意:

(1)本Java SDK只适用于非移动端(例如Windows和Linux)的本地开发集成,支持JDK 1.7及以上版本。

(2)结果获取方式为异步获取。当前服务器可能会存在排队情况,获取结果的间隔时间会存在不确定的情况,最长间隔时间为6小时。

(3)同一账号同一appid支持并发使用。但是服务端针对lfasrUpload, lfasrGetProgress, lfasrGetResult接口进行了访问频次的控制,默认每秒每个接口可请求20次。

1 JAVA开发接口说明:

(1)在LFASR4.0客户端中关于转写任务请求的调用有:

 接口名称   功能简介 
 initLfasrClient   初始化音频转写客户端  
 lfasrUpload   音频上传,转写任务创建 
 lfasrResume   断点续传 
 lfasrGetProgress   获取转写任务进度状态 
 lfasrGetResult   获取转写任务结果 

(2)函数的接口参数列表如下表所示:

 接口名称   参数列表
 initLfasrClient  空
 lfasrUpload

String local_file, // 本地音频路径及文件名 

LfasrType lfasr_type, // 本地音频对应类型

HashMap<String, String> params, // 用户可配置参数,详见下方可配置参数表格

 

 lfasrResume  空 
 lfasrGetProgress   String task_id // 任务ID 
 lfasrGetResult   String task_id // 任务ID

可配置参数

参数 类型 必须 说明 示例
lfasr_type  string

否 

转写类型,可选值: 0(标准版-已录制音频,格式包括 wav,flac,opus,mp3,m4a), 2(电话专用版,已取消电话专用版套餐),默认0 0
has_participle  string 否  转写结果是否包含分词信息 false或true, 默认false
has_seperate  string 否  转写结果中是否包含发音人分离信息 false或true, 标准版默认:false,电话版默认:true
max_alternatives  string 否  转写结果中最大的候选词个数 默认:0,最大不超过5
speaker_number  string 否  发音人个数,可选值:0-10,0表示盲分 默认:2(适用通话时两个人对话的场景)
has_sensitive  string 否  是否需要对转写结果进行敏感词检测 false或true, 默认:false
sensitive_type  string 否  敏感词检测类型 需要进行敏感词检测(has_sensitive为true)时必传,0(默认词库)或1(自定义敏感词)
keywords  string 否  自定义的敏感词 敏感词检测类型为1时必传,格式:科大讯飞,语音转写(每个词用英文逗号分割,整个字符串长度不超过256)

 (3)函数的返回值如下表说明:

 接口名称  返回值
 initLfasrClient  LfasrClientImp // 转写客户端对象  
 lfasrUpload  Message // 返回消息对象
 lfasrResume  Void // 抛出异常 
 lfasrGetProgress   Message // 返回消息对象
 lfasrGetResult  Message // 返回消息对象

(4)自定义类说明:

LfasrType枚举类型说明:

// 16K标准版-已录制音频,支持格式wav,flac,opus,mp3,m4a
LfasrType.LFASR_STANDARD_RECORDED_AUDIO 

Message返回消息类说明:
getOk();        // int类型: -1表示失败、0表示成功
getErr_no();  // 字符串类型,错误码
getFailed(); // 字符串类型,错误码描述
getData();      // 成功时携带返回值(上传接口返回任务id字符串,获取进度接口返回进度状态JSON,获取结果接口返回转写结果JSON

LfasrException异常类说明:
e.getMessage();  // 获取异常信息JSON,可转化为Message对象

ProgressStatus任务进度状态类说明:
status     // 状态ID

2. JAVA开发接口调用

(1)initLfasrClient

接口原型
       LfasrClientImp LfasrClientImp initLfasrClient() throws LfasrException;

功能
初始化音频转写客户端

参数
无。

返回值
LfasrClientImp 客户端对象。

异常

用法示例

Java Code
  1. // 初始化LFASR实例  
  2. LfasrClientImp lc = null;  
  3. try {  
  4.     lc = LfasrClientImp.initLfasrClient();  
  5. catch (LfasrException e) {  
  6.     // 初始化异常,解析异常描述信息  
  7.     Message initMsg = JSON.parseObject(e.getMessage(), Message.class);  
  8.     System.out.println("ecode=" + initMsg.getErr_no());  
  9.     System.out.println("failed=" + initMsg.getFailed());  
  10.       
  11.     // 用户可根据错误码及错误描述进行相关处理-多为配置参数问题  
  12.     ...  
  13. }  

(2)lfasrUpload

接口原型
public Message lfasrUpload(String local_file, LfasrType lfasr_type, HashMap<String, String> params) throws LfasrException;

功能
上传待转写音频文件,并创建转写任务。

参数
local_file: 本地音频路径及音频文件名
lfasr_type: 音频类型,参考:LfasrType枚举类型定义。
HashMap<String, String> params: 上传参数键值对,具体参数详见JAVA开发接口说明中可配置参数表格

 

返回值

Message对象。

异常

用法示例

Java Code
  1. String task_id = "";  
  2. try {  
  3.     // 上传音频文件  
  4.     String local_file = "C:\\test.mp3";  
  5.     HashMap<String, String> params = new HashMap<>();  
  6.     params.put("has_participle""true");  
  7.     params.put("max_alternatives""3");  
  8.     Message uploadMsg = lc.lfasrUpload(local_file, LfasrType.LFASR_STANDARD_RECORDED_AUDIO, params);  
  9.       
  10.     // 判断返回值  
  11.     int ok = uploadMsg.getOk();  
  12.     if (ok == 0) {  
  13.         // 创建任务成功  
  14.         task_id = uploadMsg.getData();  
  15.         System.out.println("task_id=" + task_id);  
  16.     } else {  
  17.         // 创建任务失败-服务端异常  
  18.         System.out.println("ecode=" + uploadMsg.getErr_no());  
  19.         System.out.println("failed=" + uploadMsg.getFailed());  
  20.         break;  
  21.     }  
  22. catch (LfasrException e) {  
  23.     // 上传异常,解析异常描述信息  
  24.     Message uploadMsg = JSON.parseObject(e.getMessage(), Message.class);  
  25.     System.out.println("ecode=" + uploadMsg.getErr_no());  
  26.     System.out.println("failed=" + uploadMsg.getFailed());  
  27.           
  28.     // 用户可根据错误码及错误描述进行相关处理-多为客户端传递参数问题  
  29.     break;  
  30. }  

 

接口原型
public void lfasrResume() throws LfasrException;

功能
   恢复上传异常文件,断点续传功能。

参数
无。        

返回值
无。

异常

用法示例

Java Code
  1. try {  
  2.     lc.lfasrResume();  
  3. catch (LfasrException e) {  
  4.     // 初始化对象异常,打印异常信息  
  5.     Message initMsg = JSON.parseObject(e.getMessage(), Message.class);  
  6.     System.out.println("ecode=" + initMsg.getErr_no());  
  7.     System.out.println("failed=" + initMsg.getFailed());  
  8.     System.out.println("data=" + initMsg.getData());  
  9.   
  10.     // 客户端开发可根据异常信息解决之后,再进行-多为配置参数问题  
  11.     break;  
  12. }  

 

接口原型
public Message lfasrGetProgress(String task_id) throws LfasrException;

功能
   根据任务ID,查询任务对应处理状态。

参数
task_id:lfasrUpload接口返回。

返回值
Message对象。

异常
LfasrException异常。

 

Java Code
  1. try {  
  2.     // 获取处理进度  
  3.     Message progressMsg = lc.lfasrGetProgress(task_id);  
  4.       
  5.     // 如果返回状态不等于0,则任务失败  
  6.     if (progressMsg.getOk() != 0) {  
  7.         System.out.println("task was fail. task_id:" + task_id);  
  8.         System.out.println("ecode=" + progressMsg.getErr_no());  
  9.         System.out.println("failed=" + progressMsg.getFailed());  
  10.   
  11.         // 服务端处理异常-服务端内部有重试机制(不排查极端无法恢复的任务)  
  12.         // 客户端可根据实际情况选择:  
  13.         // 1. 客户端循环重试获取进度  
  14.         // 2. 退出程序,反馈问题  
  15.         ...  
  16.   
  17.     } else {  
  18.         // 判断是否处理完成  
  19.         ProgressStatus progressStatus = JSON.parseObject(progressMsg.getData(), ProgressStatus.class);  
  20.         if (progressStatus.getStatus() == 9) {  
  21.             // 处理完成  
  22.             System.out.println("task was completed. task_id:" + task_id);  
  23.             ...  
  24.         } else {  
  25.             // 未处理完成  
  26.             System.out.println("task was completed. task_id:" + task_id + ", status:" + progressStatus.getDesc());  
  27.             ...  
  28.         }  
  29.     }  
  30. catch (LfasrException e) {  
  31.     // 获取进度异常处理,根据返回信息排查问题后,再次进行获取  
  32.     Message progressMsg = JSON.parseObject(e.getMessage(), Message.class);  
  33.     System.out.println("ecode=" + progressMsg.getErr_no());  
  34.     System.out.println("failed=" + progressMsg.getFailed());  
  35.       
  36.     ...  
  37. }  

(5)lfasrGetResult

接口原型
public Message lfasrGetResult(String task_id) throws LfasrException;

功能
根据任务ID,获取任务转写结果。

参数
task_id:lfasrUpload接口返回。

返回值
Message对象。

异常
LfasrException异常。

 

Java Code
  1. // 获取任务结果  
  2. try {  
  3.     Message resultMsg = lc.lfasrGetResult(task_id);  
  4.     System.out.println(resultMsg.getData());  
  5.       
  6.     // 如果返回状态等于0,则任务处理成功  
  7.     if (resultMsg.getOk() == 0) {  
  8.         // 打印转写结果  
  9.         System.out.println(resultMsg.getData());  
  10.     } else {  
  11.         // 转写失败,根据失败信息进行处理  
  12.         System.out.println("ecode=" + resultMsg.getErr_no());  
  13.         System.out.println("failed=" + resultMsg.getFailed());  
  14.     }  
  15. catch (LfasrException e) {  
  16.     // 获取结果异常处理,解析异常描述信息  
  17.     Message resultMsg = JSON.parseObject(e.getMessage(), Message.class);  
  18.     System.out.println("ecode=" + resultMsg.getErr_no());  
  19.     System.out.println("failed=" + resultMsg.getFailed());  
  20. }  

 

resultMsg.getData()为转写结果数据其为json格式的数据示例如下 

返回的json分很多子句,子句中又包含其字,词、标点,一般都是以子句位最小分析单元。以下是关于对子句json中的一些说明:

   (1)  wp字段表示词属性,其中 s语气词,p标点符号,n正文。 

  (2)  bg--当前这句话的说话结束时间,单位为毫秒   

        ed--当前这句话的说话结束时间,单位为毫秒

         wordBg--词相对于本句开始时间的起始帧,即相对于bg,单位是帧

         wordEd--词相对于本句开始时间的结束帧,即相对于bg,单位是帧

        其中一帧是10ms

   (3) 返回时长的计算,这要分整体、字句、词三块,集体的计算公式如下:

        词的返回时长 = (wordEd-wordBg)*10 (ms),以下面的“唉”为例,其返回时长:(130-37)*10 = 930ms;

        字句的返回时长  = ed-bg (ms),以下面的“唉,老铁,你出门了吧?”为例,其返回时长:5950-1100 = 4850ms;

        一个音频整体的返回时长 = 最后一个子句的说话结束时间(ed)- 第一个子句的说话开始时间(bg),如果只有一个子句,整体返回时长那就是这个子句的返回时长。

1)  has_participle未设置或false, max_alternatives未设置。       
  1.    {  
  2.     "bg":250,    \\当前这句话的说话开始时间,单位为毫秒  
  3.     "ed":2890,  \\当前这句话的说话结束时间,单位为毫秒  
  4.     "onebest":"噢,你,你听得到我这边的声音吗?",  
  5.     "speaker":"1" \\说话人编号(数字“1”和“2”为不同说话人,电话专用版功能)   
  6.     }   
2)    has_participle设置为true, max_alternatives未设置 
  1. {  
  2.   
  3.    "bg": 1100, //句子相对于本音频的起始时间,单位为ms  
  4.    "ed": 5950, //句子相对于本音频的终止时间,单位为ms  
  5.    "nc": "1.0", //句子置信度,范围为[0,1]  
  6.    "onebest": "唉,老铁,你出门了吧?",  //句子内容  
  7.    "si": "1", //句子位置,从0开始累加  
  8.    "speaker": "1", //说话人编号(数字“1”和“2”为不同说话人,电话专用版功能)  
  9.    "wordsResultList": [ //分词内容  
  10.         {  
  11.          "wc": "1.0", //词置信度,范围为[0,1]  
  12.          "wordBg": "37", //词相对于本句子的起始帧  
  13.          "wordEd": "130", //词相对于本句子的终止帧  
  14.          "wordsName": "唉",   
  15.          "wp": "s" //词属性  
  16.         },  
  17.        {  
  18.          "wc": "0.0",  
  19.          "wordBg": "130",  
  20.          "wordEd": "130",  
  21.          "wordsName": ",",  
  22.          "wp": "p"  
  23.         },  
  24.        {  
  25.      ......  
  26.   }  
  27.    ]  
  28.   } 
3)   max_alternatives设置为3,has_participle未设置、true或false
  1.  {  
  2.   
  3.               "bg": "10",  
  4.               "ed": "20790",  
  5.               "nc": "1.0",  
  6.               "onebest": "蚊子说你得帮助我消灭敌人谁是你们的敌人",  
  7.               "si": "0",  
  8.               "speaker": "0",  
  9.               "wordsResultList": [  
  10.                     {  
  11.                          "alternativeList": [   //多候选列表,按置信度排名  
  12.                          {  
  13.                                 "wc": "0.3638",  
  14.                                  "wordsName": "文字",  
  15.                                  "wp": "n"  
  16.                           },  
  17.                         {  
  18.                                  "wc": "0.0818",  
  19.                                  "wordsName": "文子",  
  20.                                  "wp": "n"  
  21.                          }  
  22.                       ],  
  23.                      "wc": "0.5544",  
  24.                      "wordBg": "3",  
  25.                     "wordEd": "207",  
  26.                     "wordsName": "蚊子",  
  27.                     "wp": "n"  
  28.                  },  
  29.                {  
  30.                 "alternativeList": [  
  31.                        {  
  32.                              ……  
  33.                        },  
  34.                       {  
  35.                              ……  
  36.                        }  
  37.                      ],  
  38.                     "wc": "0.6362",  
  39.                      "wordBg": "207",  
  40.                     "wordEd": "220",  
  41.                     "wordsName": "说",  
  42.                     "wp": "n"  
  43.                  }  
  44.   
  45.            ]  
  46.   
  47.        }       
  48.  
  49.   ]     
 

   

 

4 转写V4版 错误码和过程码说明

 错误码定义:

错误码
错误码描述
0
成功
26000
转写内部通用错误
26100
转写配置文件错误
26101
转写配置文件app_id/secret_key为空
26102
转写配置文件lfasr_host错误
26103
转写配置文件file_piece_size错误
26104
转写配置文件file_piece_size建议设置10M~30M之间
26105
转写配置文件store_path错误,或目录不可读写
26201
转写参数上传文件不能为空或文件不存在
26202
转写参数类型不能为空
26203
转写参数客户端生成签名错误
26301
转写断点续传持久化文件读写错误
26302
转写断点续传文件夹读写错误
26303
转写恢复断点续传流程错误,请见日志
26401
转写上传文件路径错误
26402
转写上传文件类型不支持错误
26403
转写本地文件上传超过限定大小500M
26404
转写上传文件读取错误
26500
HTTP请求失败
26501
转写获取版本号接口错误
26502
转写预处理接口错误
26503
转写上传文件接口错误
26504
转写合并文件接口错误
26505
转写获取进度接口错误
26506
转写获取结果接口错误
26600
转写业务通用错误
26601
非法应用信息
26602
任务ID不存在
26603
接口访问频率受限(默认1秒内不得超过20次)
26604
获取结果次数超过限制
26605
任务正在处理中,请稍后重试
26606
空音频,请检查
26610
请求参数错误
26621
预处理文件大小受限(500M)
26622
预处理音频时长受限(5小时)
26623
预处理音频格式受限
26624
预处理获取服务时长错误——未知错误
26625
预处理服务时长不足。您剩余的可用服务时长不足,请移步产品页http://www.xfyun.cn/services/lfasr 进行购买或者免费领取
26631
音频文件大小受限(500M)
26632
音频时长受限(5小时)
26633
音频服务时长不足。您剩余的可用服务时长不足,请移步产品页http://www.xfyun.cn/services/lfasr 进行购买或者免费领取
26634
文件下载失败
26635
文件长度校验失败
26640
文件上传失败
26641
上传分片超过限制
26642
分片合并失败
26643
计算音频时长失败,请检查您的音频是否加密或者损坏
26650
音频格式转换失败,请检查您的音频是否加密或者损坏
26660
计费计量失败
26670
转写结果集解析失败
26680
引擎处理阶段错误


任务状态码:

状态ID
状态描述
0
任务创建成功
1
音频上传完成
2
音频合并完成
3
计量完成
4
音频转写中
5
转写结果处理中
6
转写完成
9
转写结果上传完成

5 最佳实践指南

(1)输入音频的格式&比特率

如若条件允许,请尽量使用pcm,alaw或者ulaw编码的原始wav音频或者无损音频压缩编码(FLAC)来录制以及传输音频。

如果有压缩需求,在原始音频比特率较高(大于16kHz*16bit)的情况下,可以采用任意系统支持的格式;而在原始音频比特率较低(小于16kHz*16bit)的情况下,建议采用压缩比小于10的opus,使用其他有损编码,如mp3,m4a等会减弱识别准确率。

注,无压缩的pcm音频:比特率(bps)=采样率(kHz)*位数(bit)*声道数;其他类型音频的比特率可由查看其音频属性获得。

 

(2)背景音和噪声

录音时尽量使用靠近并且指向发声方向的麦克风(例如耳麦);对于已录制音频,建议只摘取人说话声音,避免背景音混叠;对于已经录制好的音频,由于转写引擎在转写之前会对音频进行降噪操作,因此不建议您采用额外的降噪处理。

 

(3)多人同时发音情况

当对多个发音人同时采集音频时,建议对音频进行预先切分,每次请求识别的音频只含有一位发音人的语音。因为当多人同时发音或多人发音音量有区别时,部分语音有可能会被视为背景噪音而剔除。

 

(4)有效音频的上传

为了避免您的时长损失,请上传普通播放器可播放的音频。如果上传加密、损坏的音频,或者更改音频后缀,可能会造成转写失败或者输出乱码结果。

 

(5)音频幅值

音频的帧平均幅度值在5000~20000之间为最佳。不需要刻意录制更高幅度值的音频,否则有可能造成截幅,降低识别率。

 

(6)音频时长

语音转写最大的特点为具有长时记忆功能,即时间越长的音频,其准确率会越高。建议使用大于1分钟的音频进行转写。

6 老用户升级4.0指南

目前我们对转写系统进行了全新的升级--转写4.0版本。4.0版本对于转写的性能支撑(更加稳定快速),以及功能的拓展(支持自定义热词等等)对比之前版本有了很大的提升。而转写价格依然不变。您可通过修改访问地址即可进行免费升级迁移,赢得更加优质的转写体验。
 

升级方式:

通过SDK接入的用户,将SDK中原先的访问地址:lfasr.xfyun.cn  更改为:raasr.xfyun.cn 。
通过web api访问的用户,除了访问地址的修改,还包括slice_id的生成策略。可联系我们,进行辅助升级。
 

注意事项:

老的版本我们会在近几个月内渐渐放弃更新,为了您的服务稳定,可立马进行升级。
新的版本,建议上传的音频分片大小设置为10M(10485760字节),可根据网络状况进行调整,最多不可超过60M。

 

7 语音转写服务协议

概述

科大讯飞股份有限公司(以下统称“科大讯飞”)依据本协议提供语音服务,本协议在开发者和科大讯飞间具有合同上的法律效力。

开发者一经注册或使用本协议下任何服务即视为对本协议条款的理解和接受,开发者违反本协议时科大讯飞有权按其违反情况限制或停止向开发者提供语音服务,并有权追究开发者的相关责任。

本协议可由科大讯飞随时更新,开发者可在讯飞开放平台查阅最新版协议内容。如在科大讯飞修改协议后,开发者不接受修改后的协议,请立即停止使用语音服务,如开发者继续使用语音服务,将视为已接受修改后的协议。

 

授权内容

本协议的授权产品是科大讯飞拥有自主语音技术知识产权的软件开发包(SDKSoftware Development Kit)以及应用程序编程接口(APIApplication Programming Interface),包括发布在“讯飞开放平台”上的各类平台SDK/API以及各种编程语言SDK/API。其主要功能为语音转写。

 

双方的权利义务

1)开发者必须承诺只将科大讯飞的语音转写能力应用于开发者自有产品当中;未经科大讯飞书面同意前,不得对上述技术软件或文件或其任何部分进行单独销售、转让、出租、转授权,即开发者不能将科大讯飞的语音转写能力以及产品转售于任何第三方;并不得从事反汇编、反编辑以及分解、分析、修改以上软件的行为。

2)开发者必须承诺不使用科大讯飞的语音服务进行非法行为。在接到客户使用语音转写做违法行为的举报情况下,如情况属实,科大讯飞将配合相关司法机构进行相关调查。

3)科大讯飞承诺在遵守国家相关管理规定在科大讯飞SDK/API中,无任何未经用户许可的擅自扣费,以及无资费提示扣费或与提示资费不相符等扣费情况,以及未经用户同意自行收费之固化服务提供商代码、SP服务链接以及SP客户端软件;承诺不会内置任何与科大讯飞SDK/API无关的第三方程序和功能。

 

知识产权

1)科大讯飞保证,本协议中科大讯飞SDK/API所涉及的知识产权全部归科大讯飞所有,为科大讯飞开发、设计,并无抄袭、仿冒、节录或改编他人相同或相似功能软件或其它侵害他人著作权。

2)科大讯飞保证任何第三方都不能因开发者按本协议约定方式生产、销售、使用了科大讯飞SDK/API而向开发者索取任何权利或要求。

3)所有一方专有的和非公开的知识,方法以及其它信息,在开发过程中为另一方获知或者得到,知识产权仍归原有一方所有。

4)科大讯飞保证,本协议中所涉及的合作标的的知识产权不存在任何瑕疵,不会侵犯任何第三方的合法权益。

 

保密条款

1)科大讯飞采取一切措施严格保护开发者提交的资料,包括注册信息、语音信息以及转写文字结果,在事先没有得到开发者书面同意时不得向任何第三方以任何形式泄漏任何资料。资料应包括但不限于双方提供的一切设计开发有关的信息、结果,以及协议联系期间双方或双方代表与对方交流的对方以前未知的信息。

2)科大讯飞不允许任何人在未经开发者同意的情况利用科大讯飞提供的服务以任何手段编辑、出售、传播开发者的资料。一经发现开发者实施上述行为,科大讯飞有权立即终止与该开发者的服务协议,终止为其提供任何语音服务,并有权追究其法律责任。

 

协议终止

1)如遇下列情况之一,经一方发出书面通知后即可提前终止协议:

  1)任何一方严重违反本协议的实质性义务,经守约方书面通知(书面形式包括通知函、传真、以及邮件等方式)后,在规定期限内未能采取有效的补救措施以纠正违约行为的;

  2)除适用破产法所禁止的情形外,如果任何一方出于债权人的利益,已被指定接收人或资产受让人、或破产或无力偿付到期债务或因其他事由丧失履约能力;

  3)本协议无论因何种原因终止后,本协议保密、知识产权、抗辩、违约责任及其他依其性质应继续有效的条款应继续有效,并不损害受损方寻求其它救济的权利。

2)开发者应按照科大讯飞的标准规定使用SDK/API,如开发者出现违反授权协议条约的行为,则科大讯飞有权停止向开发者提供语音服务。

 

免责条款

鉴于语音服务需要网络支撑,科大讯飞有权对提供网路服务的平台或相关设备进行部分或全部的维护、切换和升级,如因此类情况造成的语音服务在一定合理时间内出现中断,科大讯飞无需通知开发者,也无需承担任何责任。

 

其他条款

1)科大讯飞对本协议条款拥有解释权。

2)执行本协议所发生的以及与本协议有关的一切争议,双方友好协商解决,若协商不成,双方同意提交科大讯飞所在地人民法院诉讼解决。

 

注: 讯飞开放平台的语音转写为使用sdk接入,针对有编程基础的用户。如果您不想通过编程方式,可以去讯飞听见官网www.iflyrec.com,上传音频,直接实现语音转文字功能。