近期想做个东西把大段对话转成文字。用语音输入法太慢,所以想到看有没有现成的API,网上一搜,基本就是百度和讯飞。

这里先看百度的

笔者使用的是Java版本号的

下载地址:http://bos.nj.bpc.baidu.com/v1/audio/Baidu_Voice_RestApi_SampleCode.zip

解压之后里面有个51.2KB的PCM格式的音频文件,笔者尝试用各种播放器发现非常少有能打开的。最后找到一种方法分享一下。

一、播放例子音频

下载安装Adobe Audition 3.0当然你也能够用更高的版本号

打开Adobe Audition,然后将test.pcm直接拖进来,这是后会弹出窗体,依照以下这个格式选

然后点击播放。你会听到“百度语音提供技术支持”。

波形图是这种

二、以下我们来看程序的执行结果

首先,你须要创建一个应用,找到应用的API Key和Secret Key,在程序里改成你自己的,然后设置里面的cuid,cuid好像能够随意填,不知道怎么填的就改成你的网卡MAC地址。

以下是执行结果

"D:\Program Files\Java\jdk1.8.0_77\bin\java" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52675,suspend=y,server=n -Dfile.encoding=UTF-8 -classpath "D:\Program Files\Java\jdk1.8.0_77\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\deploy.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\access-bridge-64.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\cldrdata.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\jfxrt.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\nashorn.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunpkcs11.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\zipfs.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\javaws.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\jfxswt.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\management-agent.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\plugin.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\rt.jar;D:\IdeaProjects\Helloworld\out\production\Helloworld;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.2\lib\idea_rt.jar" com.baidu.speech.serviceapi.Sample
Connected to the target VM, address: '127.0.0.1:52675', transport: 'socket'
{
"access_token": "24.34cfbc06516a339bca203a7d250d2d19.2592000.1474034743.282335-8506303",
"refresh_token": "25.69215650d359739773609458e2d5ed6a.315360000.1786802743.282335-8506303",
"scope": "public audio_voice_assistant_get audio_tts_post wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian wangrantest_test wangrantest_test1 vis-faceverify_faceverify bnstest_test1 vis-ocr_ocr",
"session_key": "9mzdCPAwAJZlQyjkoqSZR4FyJ4v7SKYRS8zy3thuiQfT/K9GAL+fG0zGIm4/kkTagxBIHrJd+qs49Iu59xMKGetYDI1W",
"session_secret": "2a223032e1579bf5996fb6d4b38f767d",
"expires_in": 2592000
}
{
"result": ["百度语音提供技术支持,"],
"err_msg": "success.",
"sn": "678411133801471442744",
"corpus_no": "6319798464275533284",
"err_no": 0
}
{
Disconnected from the target VM, address: '127.0.0.1:52675', transport: 'socket'
"result": ["百度语音提供技术支持,"],
"err_msg": "success.",
"sn": "37862479621471442745",
"corpus_no": "6319798471823426386",
"err_no": 0
}

第一段json返回的是通过appkey拿到的token,后面两段是处理后返回的结果,由于调用了两个方法,所以返回的是两段。

三、音频文件转换

百度语音识别对语音的格式和參数是有要求的。文档看这里:http://yuyin.baidu.com/docs/asr/57

这里就捡重要的说了,格式支持pcm(不压缩)、wav、opus、speex、amr、x-flac。然后採样率深度声道要满足:8k/16k 採样率 16bit 位深的单声道语音。每段要处理的语音不能超过一分钟

格式上。非常多音频软件、播放器能满足要求,可是后面的參数要达到要求就有点难了。

1.少量音频的转换

对于少量音频,我们依旧能够通过Adobe Audition将其转换为符合要求的wav格式。保存或导出,选择ACM波形的wav格式,属性选择8.000kHz 8位 单声道

保存之后就能够用到百度语音识别API上了

2.长对话的转换

假设对话过长,一段一段截取导出会很麻烦。好在有一些工具能够帮我们做这些事情

2.1使用Goldwave自己主动分曲功能

自己主动分曲原理通过搜索静音区将对话或歌曲进行分段。

使用Goldwave打开音频文件,Edit-->Cute Point-->Edit Cute Points,点击Auto Cute(自己主动分曲)

这里有两个值须要注意

Below threshold这个值越大。分曲个数越多。这个是推断静音区的标准,往右调能够将大一点的声音归类到静音

Minimun length这个值确定每段话有最少有多少秒

在最下方的Cue Naming分曲命名中建议选另外一种,方便以后程序做循环处理。

选好须要的值点OK,分曲就分好了。假设不惬意就继续调

分曲完毕后。我们能够点Splite File导出这些分段的音频

导出选同样格式就好了,反正Goldwave里面没有适合百度识别的格式

2.2使用格式工厂批量转换

格式工厂,选音频-->amr-->改动输出配置例如以下,改完记得点确定。

然后批量导出就好了,放到程序里改一下文件名称和文件格式就能识别了。

百度语音识别API初探的更多相关文章

  1. 基于百度语音识别API的Python语音识别小程序

    一.功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能. 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换. 工作示例: 二.软件环境 操作系统 ...

  2. Android使用百度语音识别api代码实现。

    第一步 ① 创建平台应用 点击百度智能云进入,没有账号的可以先注册账号,这里默认都有账号了,然后登录. 然后左侧导航栏点击找到语音技术 然后会进入一个应用总览页面, 然后点击创建应用 立即创建 点击查 ...

  3. 百度 OCR API 的使用以及与 Tesseract 的简单对比

    目录 百度 OCR API 初探 用 Python 调用百度 OCR API 与 Tesseract 的简单对比 百度 OCR API 初探 近日得知百度在其 APIStore 上开放了 OCR 的 ...

  4. 利用百度语音API进行语音识别。

    由于项目需要,这几天都在试图利用百度语音API进行语音识别.但是识别到的都是“啊,哦”什么的,我就哭了. 这里我只是分享一下这个过程,错误感觉出现在Post语音数据那一块,可能是转换问题吧. API请 ...

  5. 百度语音识别REST API——通过使用Http网络请求方式获得语音识别功能

    百度语音识别通过REST API的方式给开发人员提供一个通用的HTTP接口,基于该接口,开发人员能够轻松的获取语音识别能力,本文档描写叙述了使用语音识别服务REST API的方法. 长处: 较之开发人 ...

  6. Python 百度语音识别与合成REST API及ffmpeg使用

    操作系统:Windows Python:3.5 欢迎加入学习交流QQ群:657341423 百度语音识别官方文档 百度语音合成官方文档 注意事项:接口支持 POST 和 GET两种方式,个人支持用po ...

  7. 百度语音识别REST API用法(含JAVA代码)——不须要集成SDK的方法

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zpf8861/article/details/32329457 上一篇文章http://blog.c ...

  8. 【Recorder.js+百度语音识别】全栈方案技术细节

    项目中需要利用百度语音接口在Web端实现语音识别功能,采用了这样的技术方案,但实现时遇到了很多问题,发现网上大部分文章都只是在详解官方提供的example示例,对实际开发没有提供什么有价值的建议,而r ...

  9. python +百度语音识别+图灵对话

    https://github.com/Dongvdong/python_Smartvoice 上电后,只要周围声音超过 2000,开始录音5S 录音上传百度识别,并返回结果文字输出 继续等待,周围声音 ...

随机推荐

  1. java格式化sql

    在日志分析中,经常会对记录的sql进行分析,所以将一整行sql格式化,进行多行缩就显得很有必要,许多数据库客户端都提供sql的格式化功能,但复杂的多层嵌套sql往往格式化的l还不够友好,所以就自己造了 ...

  2. Node.js——express

    res.send(),比原生的 res.end() 强大,原生只支持字符串和Buffer对象,而且需要自己加响应报文头,send支持字符串.Buffer.Json对象.数组,而且自动加响应报文头 ap ...

  3. restful api的简单理解

    百度百科的描述:一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. RES ...

  4. .NET Core MVC Web最最最基础的框架搭建

    1. 使用VS创建.NET Core MVC Web项目 创建完成就是酱紫的了 2. 用NuGet把这些全部都安装了 Install-Package Microsoft.EntityFramework ...

  5. Mac eclipse java6环境安装

    由于旧版adtbundle eclipse需要java se6版本支持,而较新版本mac系统默认安装较高的java版本,所以这里需要卸载高版本jdk(1.8),然后安装1.6 mac删除jdk jav ...

  6. 迅为iTOP-4418/6818开发板MiniLinux下的GPS使用手册

    平台:iTOP-4418/6818开发板 系统:MiniLinux 在 Mini Linux 系统环境下 iTOP-4418 和 6818 的 GPS 实验调试步骤.给用户提供了“iTOP-4418- ...

  7. Java8新特性 Stream流式思想(一)

    遍历及过滤集合中的元素使用传统方式遍历及过滤集合中的元素package cn.com.zq.demo01.Stream.test01.Stream; import java.util.ArrayLis ...

  8. 「二叉搜索树 / set / 朝鲜树 / 替罪羊树」快速排序

    要求 给定n个数,对这n个数进行排序 这题当然可以直接调用sort #include<cstdio> #include<vector> #define ll long long ...

  9. php+nginx 限制上传文件大小

    问题:在后台上传8M大小的图片,上传不成功 nginx返回413,如下图所示: 分析:nginx配置文件或者php中,可上传的大小设置太小了 解决办法------检查nginx和php的配置文件里面的 ...

  10. B2. Concurrent 线程池(Executor)

    [概述] 与数据库连接管理类似,线程的创建和销毁会耗费较大的开销,使用 “池化技术” 来更好地利用当前线程资源,减少因线程创建和销毁带来的开销,这就是线程池产生的原因. [无限创建线程的不足] 在生产 ...