百度语音识别API初探

近期想做个东西把大段对话转成文字。用语音输入法太慢,所以想到看有没有现成的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-->改动输出配置例如以下,改完记得点确定。

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

原文地址:https://www.cnblogs.com/zhchoutai/p/8525218.html

时间: 2024-10-09 05:53:57

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

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

一.功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能. 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换. 工作示例: 二.软件环境 操作系统:win10 语言:Python 版本:3.6.0 Python库:AipSpeech(百度语音识别SDK客户端),wave,PyAudio,paInt16 Python库安装:除百度为:pip install baidu-aip,其他直接 pip install *(库名) 即可. 三.原理概述

百度语音识别API的使用样例(python实现)

百度给的样例程序,不论C还是Java版,都分为method1和method2两种 前者称为隐式(post的是json串,音频数据编码到json里),后者称为显式(post的就是音频数据) 一开始考虑到python wave包处理的都是"字符串",担心跟C语言的数组不一致,所以选择低效但保险的method1, 即先将音频数据base64编码,再加上采样率.通道数等信息汇集成dict,最后总体编码成json串 结果老是报: 3300 输入参数不正确 先后试过urllib2和pycurl包,

delphi调用百度语音识别REST API

delphi调用百度语音识别REST API-20160616-感谢 魔术猫 和 DelphiTeacher 兄的帮助解决了返回中文乱码的问题!-注:语音的录音格式目前只支持评测8k/16k采样率16bit位深的单声道语音 压缩格式支持:pcm(不压缩).wav.opus.speex.amr.x-flac var sUrl, sLan, cuid, apiKey, secretKey, token, sR: string;  response: TStringStream; Stream: TF

百度语音识别REST API完整Demo

说明:web开发 原理: 1.html5录制音频文件; 2.将录制好的音频文件 通过 post 传给服务器 3.服务器通过 百度语音识别 REST API 传给百度服务器,并返回文字 Demo文件: 1.luyin.html 2.luyin.js 3.yuyin.php 以下是文件内容: luyin.html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head><m

百度语音识别REST API使用方法(含C++代码)——不需要集成SDK的方法

上一篇文章http://blog.csdn.net/zpf8861/article/details/32322089已经介绍了百度语音识别REST API的使用步骤和功能介绍,这篇文章主要通过一个实例代码来展示如何使用该API. 本文代码为C++版,可以用于C环境的应用开发中,下面介绍其中重要的代码. 下面代码是一个可以使用该方式进行语音识别功能的实例代码 #include <stdio.h> #include <stdlib.h> #include "curl/incl

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

上一篇文章http://blog.csdn.net/zpf8861/article/details/32322089已经介绍了百度语音识别REST API的使用步骤和功能介绍,这篇文章主要通过一个实例代码来展示如何使用该API. 本文代码为JAVA版,可以用于Android应用开发中,下面介绍其中重要的代码. 获得Token 其中apiKey和secretKey是从百度开放平台获得的,获得方法参看上一篇文章. private static void getToken() throws Excep

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

百度语音识别通过REST API的方式给开发者提供一个通用的HTTP接口,基于该接口,开发者可以轻松的获取语音识别能力,本文档描述了使用语音识别服务REST API的方法. 优点: 较之开发者常用的获取语音识别功能的方法,本方法最大的优势是轻量级,不需要在所开发的应用中集成任何SDK开发工具包,也不需要在测试机中添加任何识别引擎软件,开发者只要了解Http网络请求以及百度语音识别 REST API的使用规则,即可轻轻松松在自己的应用中使用语音识别相关的功能了. 功能介绍: REST API支持整

百度语音识别服务 —— 语音识别 REST API 开发笔记

在以前的项目中用到了百度语音识别服务,在这里做一个笔记.这里还是要和大家强调一下,最好的学习资料就是官网网站.我这里只是一个笔记,一方面整理了思路,另一方面方便以后我再次用到的时候可以快速回忆起来. 百度语音识别服务是什么? 百度语音识别服务能将语音文件(指定格式,不是所有格式都可以)识别成文本.语音识别我们都接触过,手机输入法里就有语音识别服务. 什么是百度语音识别的 REST API? 按照官网的说法 行业率先推出语音识别REST API,采用HTTP方式请求,可适用于任何平台的语音识别,给

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

由于项目需要,这几天都在试图利用百度语音API进行语音识别.但是识别到的都是“啊,哦”什么的,我就哭了. 这里我只是分享一下这个过程,错误感觉出现在Post语音数据那一块,可能是转换问题吧. API请求地址::http://vop.baidu.com/server_api 语音上传模式:显示发送:将语音数据直接放在 HTTP-BODY 中 其他参数:cuid:用户id,token:密钥 ,lan:语言等要了解更多请查看官方文档:http://developer.baidu.com/wiki/in