得到文字

public static void readVoice(String strVoiceText) {ActiveXComponent ax = null;try {for (int i = 0; i < 3; i++) {//重复3次叫号ax = new ActiveXComponent("Sapi.SpVoice");Dispatch spVoice = ax.getObject();//运行时输出语音内容ax.setProperty("Volume", new Variant(80));// 音量 0-100ax.setProperty("Rate", new Variant(-1));// 语音朗读速度 -10 到 +10Dispatch.call(spVoice, "Speak", new Variant(strVoiceText));// 朗读//构建文件流开始生成语音文件并保存到磁盘中ax = new ActiveXComponent("Sapi.SpFileStream");Dispatch spFileStream = ax.getObject();ax = new ActiveXComponent("Sapi.SpAudioFormat");Dispatch spAudioFormat = ax.getObject();Dispatch.put(spAudioFormat, "Type", new Variant(20));//设置音频流格式Dispatch.putRef(spFileStream, "Format", spAudioFormat);//设置文件输出流格式Dispatch.call(spFileStream, "Open",new Variant("E:\\test.wav"), new Variant(3), new Variant(true));//用输出文件流创建一个.wav文件//设置声音对象的音频输出流为输出文件对象Dispatch.putRef(spVoice, "AudioOutputStream", spFileStream);Dispatch.put(spVoice, "Volume", new Variant(80));//设置音量 0到100Dispatch.put(spVoice, "Rate", new Variant(-1));//设置朗读速度Dispatch.call(spVoice, "Speak", new Variant(strVoiceText));//开始朗读Dispatch.call(spFileStream, "Close");//关闭输出文件Dispatch.putRef(spVoice, "AudioOutputStream", null);spAudioFormat.safeRelease();spFileStream.safeRelease();spVoice.safeRelease();ax.safeRelease();Thread.sleep(5000);//每5秒重播一次叫号}} catch (Exception e) { e.printStackTrace();}}
@GetMapping("readVoice")
public void readVoice(@RequestParam("strVoiceText") String strVoiceText){readVoice(strVoiceText);//strVoiceText = 请A001号到2号窗口--文字随意}//把客户的A001加入到ArrayBlockingQueue,并创建window窗口略

通过上面代码得到了语音文件test.wav

下面是语音转文字,用讯飞的APPID代码需要,去讯飞注册

下载 SDK

把lib复制到项目下,src同级目录以及以下4个

代码

package com.fan.li.springbootvoice.voice;import com.iflytek.cloud.speech.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.entity.ContentType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
/*** @author fan* @date 2022年05月25日 17:35*/
@Slf4j
public class VoiceTool {/*** 音频文件*/public static String audioPath = "E:\\test.wav";///home/asr/my.pcm";private StringBuilder sb;private SpeechRecognizer speechRecognizer;private Object lock = new Object();public VoiceTool(String appId){SpeechUtility.createUtility(SpeechConstant.APPID + "=" + appId);}public String RecognizePcmfileByte(MultipartFile audioFile) {sb = new StringBuilder();try {if (speechRecognizer == null) {//参数可以在配置文件设置speechRecognizer = SpeechRecognizer.createRecognizer();speechRecognizer.setParameter(SpeechConstant.AUDIO_SOURCE, "-1");speechRecognizer.setParameter( SpeechConstant.RESULT_TYPE, "plain" );speechRecognizer.setParameter(SpeechConstant.VAD_BOS,"5000");//前端点超时,speechRecognizer.setParameter(SpeechConstant.VAD_EOS,"10000");//后端点超时要与运行SDK时配置的一样}speechRecognizer.startListening(recListener);byte[] buffer = audioFile.getBytes();if (buffer == null || buffer.length == 0) {log.error("no audio avaible!");speechRecognizer.cancel();} else {int lenRead = buffer.length;log.info("文件长度"+buffer.length);speechRecognizer.writeAudio( buffer, 0, lenRead );speechRecognizer.stopListening();synchronized (lock) {lock.wait();//主线程等待}log.info("输出语音内容:" + sb.toString());return sb.toString();}} catch (Exception e) {e.printStackTrace();}return null;}private RecognizerListener recListener = new RecognizerListener() {@Overridepublic void onBeginOfSpeech() {}@Overridepublic void onEndOfSpeech() {}/*** 获取听写结果*/@Overridepublic void onResult(RecognizerResult results, boolean islast) {//用json解析器解析为json格式String text = results.getResultString();sb.append(text);//log.info("解析结果:"+curRet.toString());if( islast ) {synchronized (lock) {lock.notify();//子线程唤醒}}}@Overridepublic void onVolumeChanged(int volume) {}@Overridepublic void onError(SpeechError error) {}@Overridepublic void onEvent(int eventType, int arg1, int agr2, String msg) {}};public static void main(String args[]) throws IOException {VoiceTool iatTool = new VoiceTool("you appID 讯飞上注册即可");File file = new File(audioPath);FileInputStream fileInputStream = new FileInputStream(file);MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(),ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);iatTool.RecognizePcmfileByte(multipartFile);}}

controller

/*** @author fan* @date 2022年05月25日 17:48*/
@RestController
@RequestMapping(value = "vc")
public class VoeceController {/*** 音频文件*/public static String audioPath = "E:\\test.wav";@GetMapping(value = "voiceToText")public String voiceToText() throws IOException {VoiceTool voiceTool = new VoiceTool("you appID 讯飞上注册即可");File file = new File(audioPath);FileInputStream fileInputStream = new FileInputStream(file);MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(),ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);String text = voiceTool.RecognizePcmfileByte(multipartFile);return text;}
}

浏览器输入地址

Java整合科大讯飞SDK实现语音转文字相关推荐

  1. java利用科大讯飞SDK实现语音转文字的功能

    一,下载SDK,获取.pcm格式的语音文件 利用科大讯飞的SDK实现语音转文字的功能,首先可以登录科大讯飞的官网查看"语音听写Java SDK文档"语音听写 Java SDK 文档 ...

  2. 讯飞语音转文字_科大讯飞发布新一代语音转文字录音笔,开启个人高效记录时代...

    5月21日,科大讯飞在上海正式发布全新旗舰产品讯飞智能录音笔.这款智能录音笔不仅实现了专业级降噪拾音,还搭载了领先的A.I. 技术.支持语音实时转文字,重新定义了万物互联时代的个人记录设备.1小时录音 ...

  3. java mp3转wav_在线语音转文字网站,快收藏起来

    如果你有会议录音或者课堂录音想要转换成文字,就需要找个语音转文字工具,知意字稿可以在线语音转文字,不用下载任何软件,是一个非常方便的网站. 一.在线语音转文字方便 在这个快速发展的时代,为了让用户更加 ...

  4. springboot实现高并发红包系统(java 全网最全包括语音口令 文字口令 普通 拼手气)

    博主技术笔记 博主开源微服架构前后端分离技术博客项目源码地址,欢迎各位star springboot实现高并发红包系统(全网最全) 下面的业务处理请根据你们实际的场景进行处理 1.sql设计 CREA ...

  5. Android 科大讯飞 语音转文字

    Android 科大讯飞 语音转文字 语音听写SDK适配安卓6.0需要手动申请权限,各位可以自信查询资料实现,关于语音听写SDK的开发,参考科大讯飞开放平台官网为准 第一,首先去科大讯飞官网注册一个账 ...

  6. 科大讯飞平台语音和文字互转简单介绍

    首先来介绍一下科大讯飞开放平台吧?网址是:http://www.xfyun.cn/ 科大讯飞开放平台提供了很多免费的服务. 在这边分享中主要是使用java平台介绍科大讯飞中的在线语音合成功能(包括语音 ...

  7. 实时语音转文字app简易demo(这里使用了阿里的接口,可以替换成科大讯飞)

    2019独角兽企业重金招聘Python工程师标准>>> 这里只是功能实现(个人非android开发),可能有很多更好的实现方式,该功能的开发是之前看到过阿里的实时语音转文字的接口,当 ...

  8. 讯飞语音识别之语音转文字------java

    最近项目要用到语音识别的功能,网上找别人写的都不行,二话不说直接去讯飞官网注册下载了一个sdk,但是个人觉得sdk中并不是很明确的能运行实现功能,于是自己参考下载的sdk中的代码做了一个改动和封装.添 ...

  9. Android studio调用科大讯飞的语音转文字功能

    Android studio调用科大讯飞的语音转文字功能 一.在科大讯飞的官网上注册并下载SDK 二.配置安卓项目 三.运行效果展示 一.在科大讯飞的官网上注册并下载SDK 1.首先去讯飞开放平台申请 ...

  10. 科大讯飞语音转文字_科大讯飞推出TWS真无线耳机:主打商务沟通,实时语音转文字...

    昨日,科大讯飞正式发布了旗下首款真无线耳机"IFLYBUDS",在目前无线耳机的功能的基础上,增添了实时语音转文字功能,可替代录音笔等设备,主打商务沟通. 单从外观来看,IFLYB ...

最新文章

  1. [转载]ASP.NET MVC:通过 FileResult 向 浏览器 发送文件
  2. Spring Boot 配置中的敏感信息如何保护?
  3. 云知声 Atlas 超算平台: 基于 Fluid + Alluxio 的计算加速实践
  4. BI怎么选?重点看这10个技术指标
  5. 彻底理解Python中的yield
  6. C++:MAC安装Boost库文件并且使用CLion开发
  7. Python 3.8 新功能大揭秘
  8. 《社交网站界面设计(原书第2版)》——1.12 传感器在交互中的作用
  9. 快速切换Mac系统设置One Switch
  10. 9. Browser 对象 - Location 对象
  11. web渗透--rpcbind利用
  12. 如何在Windows平台上基于github搭建个人博客平台
  13. 纸张的规格A3.A4.A5.A6纸的尺寸大小
  14. win10安装ubuntu虚拟机
  15. 入侵服务器修改手游,如何入侵手游服务器数据库
  16. 题目:找出某种珍贵药材的生长区域
  17. conda使用清华镜像安装pytorch
  18. 如何调用WxJump的API接口实现微信网址链接转二维码
  19. word锁定:解决Word文档由于文档保护而无法修改、查找、编辑的方法
  20. HTML 与HTML5 常用标签

热门文章

  1. O2O营销模式的核心是什么 O2O模式下便利店有哪些特点?
  2. Layabox 实现 PageView 翻页
  3. Theano介绍及简单应用
  4. SCRUM敏捷开发教程
  5. MATLABnbsp;std()nbsp;标准偏差函数
  6. 51单片机学习笔记(一)软件及驱动安装
  7. 使用极光推送(www.jpush.cn)向安卓手机推送消息【服务端向客户端主送推送】C#语言...
  8. 软件工程期末考试超全试题库(含答案 和解析)
  9. UVa OJ 10361 自动作诗机
  10. format mla_MLA Format MLA格式