语音识别之百度语音试用和OpenAiGPT开源Whisper使用

0.前言: 本文作者亲自使用了百度云语音识别,腾讯云,java的SpeechRecognition语言识别包 和OpenAI近期免费开源的语言识别Whisper(真香警告)介绍了常见的语言识别实现原理

1.NLP 自然语言处理(人类语言处理) 你好不同人说出来是不同的信号表示

  单位k 16k=16000个数字表示 116000个数字(向量)表示声音

图 a a1
在这里插入图片描述
在这里插入图片描述

2.处理的类别

   audition-->textaudition-->auditionclass-->audition(hey siri)

3.深度学习带来语言的问题 一定几率合成错误

   发财发财发财发财发财 //语气又不一样发财  //只有发

语言分割(两个人同时说话)
(电信诈骗)语气声调模仿

4.怎么辨识

  word 一拳超人  一拳 超人   一拳超 人   personal computermorpheme 根             unbreakable的breakbytes 不同语言按01标识, language independentgrapheme

5.常用的模型

  1. LAS 提取范围feature decoder->attention 相邻信息差不多,不能事实翻译
  2. CTC sequence to sequence 可实时输出 图ctc 好null好null棒棒>棒–>好棒
    要自己制作label null null好棒 好 null好棒
  3. RNN-T sequence to sequence 如果前面结果满意就处理next
    图rnnt/1 解决自己train的label,窗口移动做范围attention MoChA window 大小动态的变化
  4. HMM: 过去没有深度学习的解决方案 ,phoneme 发音 为单位猜概率,tri-phone : what do you
    –>do发音受what和you影响
    预测下一个的几率 图hmm1
    图ctc
    ctc
    图hmm
    在这里插入图片描述

6.深度学习使用到模型上

Tandem 09年满大街, 得到训练的语音概率,再放到模型运行
DNN-HMM HyBrid 2019(google IBM 5%错误率)主流 DNN(使用一个文件)可以训练

对比 图(not gen代表没有路径可以抵达)
在这里插入图片描述

7.js可以使用语音识别(调用google aip,国内被封需要科学上网)
//真香,不过(科学上网,再开个node服务器)公司使用会不会有纷争就不知道了

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>语音识别示例</title>
</head>
<body><h1>语音识别示例</h1><button id="start-btn">开始识别</button><button id="stop-btn">停止识别</button><div id="result-div"></div><script>// 获取DOM元素const startBtn = document.querySelector('#start-btn');const stopBtn = document.querySelector('#stop-btn');const resultDiv = document.querySelector('#result-div');// 创建一个SpeechRecognition对象const recognition = new webkitSpeechRecognition();// 设置语音识别参数recognition.lang = 'zh-CN'; // 设置语言为中文recognition.continuous = true; // 设置为连续模式// 开始语音识别startBtn.addEventListener('click', function() {recognition.start();});// 停止语音识别stopBtn.addEventListener('click', function() {recognition.stop();});// 监听语音识别结果recognition.onresult = function(event) {const result = event.results[event.resultIndex][0].transcript;resultDiv.innerHTML += `<p>${result}</p>`;};// 监听语音识别错误recognition.onerror = function(event) {console.error('语音识别错误:', event.error);};</script>
</body>
</html>
  1. 使用SpeechRecognition 没有中文包,识别英文全是oh

9.百度云语音识别(能识别就是没有说话的时候出现奇奇怪怪的句子) 免费半年还挺好的,腾讯云只有5000次调用试用

https://console.bce.baidu.com/ai/#/ai/speech/app/list

//图baidu
//识别语音的文件,controller只需要得到io流放到byte数据就可以识别,我觉得每次生成一个pcm应该就不会出现下图的识别识别的情况

import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;import com.baidu.aip.speech.AipSpeech;
import org.json.JSONObject;public class test01 {// 在百度 AI 平台创建应用后获得private static final String APP_ID = "xxxx";private static final String API_KEY = "xxxx";private static final String SECRET_KEY = "xxxxx";public static void main(String[] args) throws Exception {// 初始化 AipSpeech 客户端AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);// 设置请求参数HashMap<String, Object> options = new HashMap<String, Object>();options.put("dev_pid", 1537); // 普通话(支持简单的英文识别)// 读取音频文件File file = new File("path/to/audio/file.pcm");FileInputStream fis = new FileInputStream(file);byte[] data = new byte[(int) file.length()];fis.read(data);fis.close();// 调用语音识别 APIJSONObject result = client.asr(data, "pcm", 16000, options);if (result.getInt("err_no") == 0) {String text = result.getJSONArray("result").getString(0);System.out.println("识别结果:" + text);} else {System.out.println("识别失败:" + result.getString("err_msg"));}}
}

//实时录音测试
//图baidu

//优化需要像图片处理一样,直接上传文件而不是流

import java.util.HashMap;
import javax.sound.sampled.*;import com.baidu.aip.speech.AipSpeech;
import org.json.JSONObject;public class test01 {// 在百度 AI 平台创建应用后获得private static final String APP_ID = "xxxxxxx";private static final String API_KEY = "xxxxxx";private static final String SECRET_KEY = "xxxxxx";public static void main(String[] args) throws Exception {// 初始化 AipSpeech 客户端AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);// 设置请求参数HashMap<String, Object> options = new HashMap<String, Object>();options.put("dev_pid", 1537); // 普通话(支持简单的英文识别)// 获取麦克风录制的音频流AudioFormat format = new AudioFormat(16000, 16, 1, true, false);TargetDataLine line = AudioSystem.getTargetDataLine(format);line.open(format);line.start();// 创建缓冲区读取音频数据int bufferSize = (int) format.getSampleRate() * format.getFrameSize();byte[] buffer = new byte[bufferSize];// 循环读取并识别音频数据while (true) {int count = line.read(buffer, 0, buffer.length);if (count > 0) {// 调用语音识别 APIJSONObject result = client.asr(buffer, "pcm", 16000, options);if (result.getInt("err_no") == 0) {String text = result.getJSONArray("result").getString(0);System.out.println("识别结果:" + text);} else {System.out.println("识别失败:" + result.getString("err_msg"));}}}}
}

10.腾讯云语音识别 5000条免费,读者可以自己下载项目看看

  //控制台https://console.cloud.tencent.com/asr#//项目地址https://github.com/TencentCloud/tencentcloud-speech-sdk-java

11.使用whisper(2022年9月21日开源的,openAI格局真的大,腾讯云实时识别都要1个小时2块钱不过也不贵,但是对于大多数公司来说要压缩成本,嵌入式也有tiny版本的模型来使用)

  1. 安装python3.10
pip3 install torch torchvision torchaudio

2.powershell安装coco和ffmpeg

 Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

//切换阿里源,找不到ffmpeg(专门来处理音频的)如果不安装就找不到路径和文件

choco source add --name=aliyun-choco-source --source=https://mirrors.aliyun.com/chocolatey/
choco source set --name="'aliyun-choco-source'"
choco source list
choco install ffmpeg

2.测试 速度挺快的,用小一点的模型岂不是慢一定可以通过准确又快速的半实时语言识别!!!

whisper test1.mp4

结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/288504.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot数据校验与异常篇

一、异常处理 1.1Http状态码 HTTP状态码是指在HTTP通信过程中&#xff0c;服务器向客户端返回的响应状态。它通过3位数字构成&#xff0c;第一个数字定义了响应的类别&#xff0c;后两位数字没有具体分类作用。以下是常见的HTTP状态码及其含义&#xff1a; - 1xx&#xff08;信…

2023年中国数据智能管理峰会(DAMS上海站2023)-核心PPT资料下载

一、峰会简介 数据已经成为企业的核心竞争力&#xff01;谁掌控数据、更好的利用数据、实现资产化&#xff0c;谁就会真正率先进入大数据时代。 1、数据智能管理趋势和挑战 在峰会上&#xff0c;与会者讨论了数据智能管理的最新趋势和挑战。随着数据量的不断增加&#xff0c…

【强化学习】Deep Q Learning

Deep Q Learning 在前两篇文章中&#xff0c;我们发现RL模型的目标是基于观察空间 (observations) 和最大化奖励和 (maximumize sum rewards) 的。 如果我们能够拟合出一个函数 (function) 来解决上述问题&#xff0c;那就可以避免存储一个 (在Double Q-Learning中甚至是两个…

基于python的图表生成系统,python导入数据生成图表

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;用python将excel的内容生成图像&#xff0c;python画的图表如何导入word&#xff0c;现在让我们一起来看看吧&#xff01; 今天的主题是 Excel&#xff0c;相信大家都比较熟悉吧。而且我相信&#xff0c;大家在日常使用…

计算机组件操作系统BIOS的相关知识思维导图

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 目录 一、运维实施工程师需要具备的知识 1、运维工程师、实施工程师是啥&#xff1f; 2、运维工程师、实施工…

3.基本数据类型

3.基本数据类型 int整型 作用:用来记录人的年龄&#xff0c;出生年份&#xff0c;学生人数等整数相关的状态 定义:age18 birthday1990 student_count48 float浮点型 作用&#xff1a;用来记录人的身高&#xff0c;体重&#xff0c;薪资等小数相关的状态 定义:height172.3 w…

el-select 全选

<template><div class"container"><el-selectv-model"choosedList"clearablemultiplecollapse-tagsplaceholder"请选择"change"select_Change"><div style"padding: 0 20px; line-height: 34px">&l…

【离散数学】——期末刷题题库(树其二)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

MyBatis-Plus(一):根据指定字段更新或插入

根据指定字段更新或插入 1、概述2、实现方式2、总结 1、概述 MyBatis-Plus中提供了一个saveOrUpdate()方法&#xff0c;默认情况下可以根据主键是否存在进行更新或插入操作&#xff0c;但是实际场景中&#xff0c;根据指定字段进行更新或插入的情况也非常多见&#xff0c;今天…

计算机组成原理(复习题)

更多复习详情请见屌丝笔记 一、选择题 计算机系统概述 1、至今为止&#xff0c;计算机中的所有信息仍以二进制方式表示的理由是&#xff08; C &#xff09;。 A.运算速度快 B.信息处理方便 C.物理器件性能所致 D.节约元件 2、运算器的核心功能部件是&#xff08; D &am…

安防监控EasyCVR平台如何通过api接口设置实时流的sei数据实现画框等操作?

国标GB28181视频监控系统EasyCVR平台采用了开放式的网络结构&#xff0c;支持高清视频的接入和传输、分发&#xff0c;能提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0…

DC-6靶场

DC-6靶场下载&#xff1a; https://www.five86.com/downloads/DC-6.zip 下载后解压会有一个DC-3.ova文件&#xff0c;直接在vm虚拟机点击左上角打开-->文件-->选中这个.ova文件就能创建靶场&#xff0c;kali和靶机都调整至NAT模式&#xff0c;即可开始渗透 首先进行主…