语音转写(Long Form Automatic Speech Recognition):基于大发pk10独立研究的深度全序列卷积神经网络语音识别框架(Deep Fully Convolutional Neural Network, DFCNN),针对语音的长时相关性进行语言建模,将音频数据转换成文本数据,为后续的信息处理和数据挖掘提供基础。 具体表现形式为,将多种格式的长段音频文件(5小时以内)转换成包含时间戳、词句置信度、词属性以及句子标志的文字信息。文字信息提供分词形式以及整段文字形式以及发音人分离功能。
转写的是已录制音频(非实时),音频文件上传成功后进入等待队列,待转写成功后用户即可获取结果,返回结果时间受音频时长以及排队任务量的影响。如遇转写耗时比平时延长,大概率表示当前时间段出现转写高峰,即有任务积压排队,属正常现象,请耐心等待。
为使转写服务更加通畅,请尽量转写5分钟以上的音频文件,上传大量的短音频易引起网络和服务器资源紧张,从而导致任务排队积压。
另外,语音转写是SLA协议对象服务之一,大发pk10对付费用户承诺有效任务耗时最大不超过5小时,赔偿标准等详情请参考SLA协议 (opens new window)。
SDK下载请点击 语音转写Java SDK下载 (opens new window),开发文档详见下方。
音频时长与理论返回时间可以参考下表(请注意,实际返回时长受上传的音频时长和任务总量影响,忙时会出现任务排队情况):
音频时长X(分钟) | 参考返回时间Y(分钟) |
---|---|
X<10 | Y<3 |
10<=X<30 | 3<=Y<6 |
30<=X<60 | 6<=Y<10 |
60<=X | 10<=Y<20 |
进入讯飞开放平台主页http://northseasurffestival.com/ (opens new window)或者对应的产品页,点击右上角登录或者注册按钮,完成登录操作。
进人把控好台“我的用途”列表框页,点击率左上“加入新用途”,并填写企业的主信息各种相关用途企业的主信息,本人微信微信实名登记v申请身份验证普通手机用户组可加入3个用途,企业的主微信微信实名登记v申请身份验证普通手机用户组可加入20个用途,若加入很多用途普通手机用户组可首选企业的主微信微信实名登记v申请身份验证。src
-- main
-- java
-- com.iflytek.lfasr.demo
-- LfasrSDKDemo
-- resources
-- audio
-- lfasr.wav
-- lib
-- lfasr-sdk-3.0.0.jar
pom.xml
SDK入口程序类:LfasrClient,通过 LfasrClient.getInstance(......);
创建客户端实例。
接口名称 | 参数 | 返回值 | 功能简介 |
---|---|---|---|
getInstance ( String appId, String secretKey ) | appId:应用appid secretKey:应用secret_key | LfasrClient | 创建客户端实例 |
getInstance ( String appId, String secretKey, String proxyUrl ) | appId:应用appid secretKey:应用secret_key proxyUrl:设置网络代理 | LfasrClient | 创建客户端实例 当需要设置代理时使用 |
getInstance ( String appId, String secretKey, int coreThreads, int maxThreads, String proxyUrl ) | appId:应用appid secretKey:应用secret_key coreThreads:核心线程数 maxThreads:最大线程数 proxyUrl:设置网络代理 | LfasrClient | 创建客户端实例 有特殊性能要求时使用 |
getInstance ( String appId, String secretKey, int coreThreads, int maxThreads, int maxConnections, int connTimeout, int soTimeout, String proxyUrl ) | appId:应用appid secretKey:应用secret_key coreThreads:核心线程数 maxThreads:最大线程数 maxConnections:最大网络连接数 connTimeout:连接超时时间(ms) soTimeout:响应超时时间(ms) proxyUrl:设置网络代理 | LfasrClient | 创建客户端实例 有特殊性能要求时使用 |
upload ( String audioFilePath ) | audioFilePath:音频文件路径 | Message | 上传音频文件 创建转写任务 |
upload ( String audioFilePath, Map<String, String> param ) | audioFilePath:音频文件路径 param:业务扩展参数 (见下表) | Message | 上传音频文件 创建转写任务 |
getProgress ( String taskId ) | taskId:任务ID, 由upload接口返回的Message中获取 | Message | 获取转写进度 |
getResult ( String taskId ) | taskId:任务ID, 由upload接口返回的Message中获取 | Message | 获取转写结果 |
参数 | 类型 | 必须 | 说明 | 示例 |
---|---|---|---|---|
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 |
role_type | string | 否 | 支持参数如下 1: 通用角色分离 | 该字段只有在开通了角色分离功能的前提下才会生效,正确传入该参数后角色分离效果会有所提升。 如果该字段不传,默认采用 1 类型 |
max_alternatives | string | 否 | 转写结果中最大的候选词个数 | 默认:0,最大不超过5 |
eng_vad_margin | int | 否 | 首尾是否带静音信息,不带静音信息可以使得词相对于本句子的起始帧更精确 0:不显示 1:显示 | 默认为 1,带静音信息 |
has_smooth | string | 否 | 开启或关闭顺滑词(目前只有中文、英文支持顺滑词,其他方言和小语种暂不支持顺滑词,也不支持顺滑词的关闭) 开启:true 关闭:false | 默认:true(开启顺滑词) |
track_mode | string | 否 | 声道分轨转写模式,可选值:1,2 1: 表示不分轨 2: 表示分轨 注:此功能适用于双声道音频发音人分离场景,要求双声道音频每个声道是独立发音人,开启该功能后,参数speaker_number失效 | 默认:1(适用通话时两个人对话的场景) |
speaker_number | string | 否 | 发音人个数,可选值:0-10,0表示盲分 注:发音人分离目前还是测试效果达不到商用标准,如测试无法满足您的需求,请慎用该功能。 | 默认:2(适用通话时两个人对话的场景) |
language | string | 否 | 语种 cn:中英文&中文(默认) en:英文(英文不支持热词) 其他小语种:可到控制台-语音转写-方言/语种处添加试用或购买,添加后会显示该小语种参数值。若未授权,使用将会报错26607。 | cn |
eng_rlang | string | 否 | 控制广东话(粤语)返回的文本结果为繁体还是简体 简体:0 繁体:1 | 默认:1(返回繁体文本) |
pd | string | 否 | 垂直领域个性化参数: 法院: court 教育: edu 金融: finance 医疗: medical 科技: tech 体育: sport 政府: gov 游戏: game 电商: ecom 汽车: car | 设置示例: params.put("pd", "edu") pd为非必须设置参数,不设置参数默认为通用 |
hotWord | string | 否 | 会话级热词(使用此参数需要appid对应控制台的个性化热词置空)用以提升专业词汇的识别率,注意点如下: 1、单个热词设置:热词 2、多个热词设置:热词1|热词2|热词3 3、单个热词长度不得大于16 4、热词个数限制200个 | 设置示例 1、prepareParam.put("hotWord", "梁育生") 2、prepareParam.put("hotWord", "梁育生|开心") |
属性名称 | 类型 | 说明 |
---|---|---|
ok | int | 0:成功 -1:失败 |
errNo | int | 错误码 (见错误码) |
failed | String | 失败原因 |
data | String | 数据 upload接口,为taskId getProgress接口,为状态json数据 getResult接口,为结果json数据 |
//1、建立买家端具体方法
LfasrClient lfasrClient = LfasrClient.getInstance(APP_ID, SECRET_KEY);
//2、上传视频音频zip文件zip文件
Message task = lfasrClient.upload(AUDIO_FILE_PATH);
String taskId = task.getData();
System.out.println("转写目标 taskId:" + taskId);
//3、手机查看转写进度表
int status = 0;
while (status != 9) {
Message message = lfasrClient.getProgress(taskId);
JSONObject object = JSON.parseObject(message.getData());
status = object.getInteger("status");
System.out.println(message.getData());
TimeUnit.SECONDS.sleep(2);
}
//4、得到 毕竟
Message result = lfasrClient.getResult(taskId);
System.out.println("转写报告: \n" + result.getData());
字段名 | 说明 |
---|---|
bg | 句子相对于本音频的起始时间,单位为ms |
ed | 句子相对于本音频的终止时间,单位为ms |
onebest | 句子内容 |
speaker | 说话人编号,从1开始,未开启说话人分离时speaker都为0 |
si | 句子标识,相同si表示同一句话,从0开始 注:仅开启分词或者多候选时返回 |
wordsResultList | 分词列表 注:仅开启分词或者多候选时返回 |
alternativeList | 多候选列表,按置信度排名 注:仅开启分词或者多候选时返回 |
wordBg | 词相对于本句子的起始帧,其中一帧是10ms 注:仅开启分词或者多候选时返回 |
wordEd | 词相对于本句子的终止帧,其中一帧是10ms 注:仅开启分词或者多候选时返回 |
wordsName | 词内容 注:仅开启分词或者多候选时返回 |
wc | 句子置信度,范围为[0,1] 注:仅开启分词或者多候选时返回 |
wp | 词属性,n代表普通词,r代表人名,d代表数字,m代表量词,s代表顺滑词(语气词),t代表地名&多音字,p代表标点,g代表分段标识 注:仅开启分词或者多候选时返回 |
错误码 | 错误码描述 |
---|---|
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 | 获取结果次数超过限制,最多100次 |
26605 | 任务正在处理中,请稍后重试 |
26606 | 空音频,请检查 |
26610 | 请求参数错误 |
26621 | 预处理文件大小受限(500M) |
26622 | 预处理音频时长受限(5小时) |
26623 | 预处理音频格式受限 |
26625 | 预处理服务时长不足。您剩余的可用服务时长不足,请移步产品页http://northseasurffestival.com/services/lfasr 进行购买或者免费领取 |
26631 | 音频文件大小受限(500M) |
26632 | 音频时长受限(5小时) |
26633 | 音频服务时长不足。您剩余的可用服务时长不足,请移步产品页http://northseasurffestival.com/services/lfasr 进行购买或者免费领 |
26634 | 文件下载失败 |
26635 | 文件长度校验失败 |
26640 | 文件上传失败 |
26641 | 上传分片超过限制 |
26642 | 分片合并失败 |
26643 | 计算音频时长失败,请检查您的音频是否加密或者损坏 |
26650 | 音频格式转换失败,请检查您的音频是否加密或者损坏 |
26660 | 计费计量失败 |
26670 | 转写结果集解析失败 |
26680 | 引擎处理阶段错误 |
26607 | 转写语种未授权或已过有效期 |
状态ID | 状态描述 |
---|---|
0 | 任务创建成功 |
1 | 音频上传完成 |
2 | 音频合并完成 |
3 | 音频转写中 |
4 | 转写结果处理中 |
5 | 转写完成 |
9 | 转写结果上传完成 |
如果有压缩需求,在原始音频比特率较高(大于16kHz16bit)的情况下,可以采用任意系统支持的格式;而在原始音频比特率较低(小于16kHz16bit)的情况下,建议采用压缩比小于10的opus,使用其他有损编码,如mp3,m4a等会减弱识别准确率。
注,无挤压的pcm录音文件:比特率(bps)=取样率(kHz)*个数(bit)*声道数;的类录音文件的比特率可由看看其录音文件特性拥有。 (2)蓝本音和躁声 录音功能时要选择靠上和对准发出噪音方向盘的录音麦克风(譬如耳麦);相对已屏幕录制视频双声道,小编意见建议只摘取人言语噪音,尽量避免底色音混叠;相对已屏幕录制视频好的双声道,由转写登录器在转写很久会对双声道开始隔音降噪音操作的,之所以不小编意见最好是运用特别的隔音降噪音加工。 (3)几百人也拼读现象 当对很多英语拼读人互相采摘音视频时,提倡对音视频参与事前切分,每当请求辨认的音视频只包含位英语拼读人的qq声音。而且当3人互相英语拼读或3人英语拼读音量有有什么区别时,个部分qq声音有已经会被当做底色空调噪声而清除。 (4)有效率音频软件的批量下载 为了能让避免出现您的时间损失费,请上架常见的点击器可点击的双声道。假如上架文件加密、搞坏的双声道,或就要变更双声道格式,也许 会会导致转写失败或导出乱码最后。 (5)语音幅值 音频的帧的平均力度值在5000~20000中为最好。不要有没有理由录视频更高一些力度值的音频,否则的话有可能性导致的截幅,变低分辨率。 (6)音频视频时间长度 语言转写很大的特征为拥有长时记忆能力作用,即日子越长的语音,其准确度率会越高。意见与建议选择以上4分钟的语音实现转写。答:支撑,要能保证同样这个appid每秒标准数据接口机会最大的值在20次下面的。
答:不不认。
答:需要领域新大发pk10新手礼包,利用您企业认证的状态,提供数据至多50每小时的免费使用时限,高效期为3年。
答:关于返回时长快慢,需要看当时的转写任务量以及是否是高峰期,如任务积压,排队处理需要时间,时间上会长些。
另外语音转写是SLA协议对象服务之一,大发pk10对付费用户承诺有效任务耗时最大不超过5小时,赔偿标准等详情请参考SLA协议 (opens new window)。
答:语音聊天转写适用Java和WebAPI电源接口。
答:现有语音说话转写适配的音响视频格局为:已拍录音响视频,wav,flac,opus,m4a,mp3,单声道&多声道,适配语种:中文翻译名平凡话、英语怎么说、开通服务的小语种及中文翻译名口音;采集率:8KHz,16KHz;采集高精度:8bit,16bit
答:现阶段办公电话号码版和细则版就已经 重新命名为统一的的的安卓版本,办公电话号码版老移动用户的用时还可以再继续操作。重新命名后的的安卓版本不支持多音标发音人分割,到底参数设置调控请参阅发掘word文件。
答:帮助语种:中文翻译名平民话、英语翻译,小语种甚至中文翻译名广东山西方言会到掌控台-语音说话转写-广东山西方言/语种处插入测试或购卖。