java语音转文字
用到的百度提供的api
需要把wav音频文件转成16k的频率,必须转,不转百度api解析不出来。显示音频文件不清晰错误。想要转化还必须要有ffmpeg程序,这个自己百度去下载。然后拿转好的文件扔到百度的api中。很简单。
pom
<!-- 百度语音识别 -->
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.3.2</version>
</dependency>
工具类Cover8xTo16x
package com.xiaoxin.yixinai._frame.utils; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import java.io.File;
import java.util.ArrayList;
import java.util.List; /**
* Created by liuzhonghua on 2018/8/14.
*/
public class Cover8xTo16x { static final Logger logger = LoggerFactory.getLogger(Cover8xTo16x.class);
/**
* 音频文件频率8k转16k。必须要转,因为不转百度识别不出来,错误信息是音质太差
* @param sourceFile
* @return
*/
public static File cover8xTo16x(File sourceFile){
String targetPath = null;
try {
File ffmpegPath = new File("E:\\project\\ffmpeg\\bin\\ffmpeg"); //存放ffmpeg程序的目录
targetPath = sourceFile.getAbsolutePath().replaceAll(".wav" , "_16x.wav");
// ffmpeg.exe -i source.wav -ar 16000 target.wav
List<String> wavToPcm = new ArrayList<String>();
wavToPcm.add(ffmpegPath.getAbsolutePath());
wavToPcm.add("-i");
wavToPcm.add(sourceFile.getAbsolutePath());
wavToPcm.add("-ar");
wavToPcm.add("16000");
wavToPcm.add(targetPath);
ProcessBuilder builder = new ProcessBuilder();
builder.command(wavToPcm);
builder.redirectErrorStream(true);
Process process = builder.start();
process.waitFor();
} catch (Exception e) {
logger.error("录音文件8k转化16k失败"+e.getMessage());
e.printStackTrace();
return null;
}
if (StringUtils.isNotEmpty(targetPath)) {
return new File(targetPath);
}
logger.error("传入的文件路径有误");
return null;
}
}
AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);
JSONObject res = client.asr("D:\\websites\\upload\\vox\\vns\\389_37\\4.6.1.ai1_16x.wav", "wav", 16000, null);
System.out.println(res);
java语音转文字的更多相关文章
- C# 语音识别(文字to语音、语音to文字)
最近打算研究一下语音识别,但是发现网上很少有C#的完整代码,就把自己的学习心得放上来,和大家分享一下. 下载API: 1)SpeechSDK51.exe (67.0 ...
- iOS 10中如何搭建一个语音转文字框架
在2016WWDC大会上,Apple公司介绍了一个很好的语音识别的API,那就是Speech framework.事实上,这个Speech Kit就是Siri用来做语音识别的框架.如今已经有一些可用的 ...
- JAVA 跑马灯文字效果
JAVA跑马灯文字效果的实现: 1. 首先创建一个继承JFrame类的HorseRaceLightTextFrame窗体类,代码如下: package com.example.horseracelig ...
- Java图片加文字水印
Java图片加文字水印 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.I ...
- 机器人之路的第一小步:录音+语音识别(语音转文字),大小600K(免费下载)!
机器人之路的第一小步:录音+语音识别(语音转文字),大小600K,本人出品! 机器人之路的第一小步:录音+语音识别,准确率还不是特别高,不过普通话标准的话,识别准确率还是不错的,大家可以体验一下,请下 ...
- iOS语音播报文字
记得大学的时候学微软Window Phone时,有语音识别类似苹果的嘿,Siri.今天无聊百度搜了一下,搜到苹果语音播报文字.自己试了下还挺好玩. 1.引入框架#import <AVFounda ...
- JAVA的图片文字识别技术
从2013年的记录看,JAVA中图片文字识别技术大部分采用ORC的tesseract的软件功能,后来渐渐开放了java-api调用接口. 图片文字识别技术,还是采用训练的方法.并未从根本上解决图片与文 ...
- 语音识别系统:有免费实用的"语音到文字"的软件么?
自从看了<李开复自传>,就对"语音识别系统"产生了非常深刻的印象. 根据自己的判断,语音识别系统还是非常有用的. 以自己的实际需求来看: 1.中国象棋中的应用. 中国象 ...
- JAVA学习之Java语音基础组成
Java语音基础组成一.关键字:被Java赋予含义的单词(如class.interface) 二.标识符:在程序中自定义的一些名称三.注释:单行注释(//).多行注释(/**/).文档注释(被java ...
随机推荐
- Matplotlib学习---matplotlib里颜色,标记,线条类型参数的选择(colors, markers, line styles)
颜色(Colors): 基础颜色: character color 'b' blue 'g' green 'r' red 'c' cyan 'm' magenta 'y' yellow 'k' bla ...
- win10系统同时安装python2.7和python3.6
我是先在本机上安装的python3.6.5,因为要学习一个框架,但是这个框架只支持python2,所以我又安装了python2.7.15,并且配置到系统环境变量 环境变量配置了python3.6.5的 ...
- 爬虫_电影天堂 热映电影(xpath)
写了一天才写了不到100行.不过总归是按自己的思路完成了 import requests from lxml import etree import time BASE = 'http://www.d ...
- sshfs && tailon
sshfs 安装yum install glib2-devel fuse-sshfs官方版本地址https://github.com/libfuse/sshfs/releases目前最新版本:wget ...
- Hdoj 2041.超级楼梯 题解
Problem Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input 输入数据首先包含一个整数N,表示测试实例的个数,然后是 ...
- [HAOI2010]最长公共子序列(LCS+dp计数)
字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X ...
- django pymysql
此处django版本为1.11.13 设置setting.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NA ...
- 20165223 week2测试补交与总结
测试题二 题目: 在Ubuntu或Windows命令行中 建如下目录结构 Hello.java的内容见附件package isxxxx; (xxxx替换为你的四位学号) 编译运行Hello.java ...
- mui 对话框 点击按钮不关闭对话框的办法
目前版本的 mui.js 点击对话框的按钮只能关闭对话框 做如下修改 点击按钮后return false 即可
- saltstack常用命令
Salt通过公钥加密和认证minions.想要让minion从master端接受命令,minions的密钥需要被master接受 salt-key -L #列出master上的密钥; salt-key ...