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

news2024/9/23 7:29:39

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

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

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

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

2.处理的类别

   audition-->text
   audition-->audition
   class-->audition(hey siri)

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

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

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

4.怎么辨识

  word 一拳超人  一拳 超人   一拳超 人   
               personal computer
   morpheme 根             unbreakable的break
   bytes 不同语言按01标识, language independent
   grapheme

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();

        // 调用语音识别 API
        JSONObject 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) {
                // 调用语音识别 API
                JSONObject 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.coloradmin.cn/o/1325029.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能优化算法应用:基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.水基湍流算法4.实验参数设定5.算法结果6.…

Super访问父类成员

1 问题 当子类的成员变量或方法与父类同名时&#xff0c;可能模糊不清&#xff0c;应该怎么解决&#xff1f;如果子类重写了父类的某一个方法&#xff0c;我们又该怎么调用父类的方法&#xff1f; 2 方法 super调用成员属性&#xff1a; 当父类和子类具有相同的数据成员时&…

面向 NLP 任务的大模型 Prompt 设计

很久之前&#xff0c;我们介绍到&#xff0c;prompt是影响下游任务的关键所在&#xff0c;当我们在应用chatgpt进行nlp任务落地时&#xff0c;如何选择合适的prompt&#xff0c;对于SFT以及推理环节尤为重要。 不过&#xff0c;硬想不是办法&#xff0c;我们可以充分参考开源的…

小程序面试题 | 07.精选小程序面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

语音识别与人机交互:发展历程、挑战与未来前景

导言 语音识别技术作为人机交互领域的重要组成部分&#xff0c;近年来取得了巨大的发展。本文将深入研究语音识别与人机交互的发展历程、遇到的问题、解决过程、未来的可用范围&#xff0c;以及在各国的应用和未来的研究趋势。我们将探讨在这个领域&#xff0c;哪一方能取得竞争…

47 星南二楼

动态规划&#xff0c;相当于求解最长子序列问题 #include <iostream> using namespace::std; using std::cout; using std::cin; int n; int a[5100],dp[5100];int xnel(int n, int a[]) {int result 0;for(int i0; i<n; i){for(int j0; j<i; j){if(a[j]<a[…

每日一博 - Protobuf vs. Protostuff:性能、易用性和适用场景分析

文章目录 历史区别联系性能差异最佳实践场景分析小结 历史 对于Protostuff和Protobuf的关系&#xff0c;需要了解它们的起源和发展。 Protobuf&#xff08;Protocol Buffers&#xff09;是由Google开发的一种数据序列化格式&#xff0c;用于结构化数据的存储和交换。它最初是…

损失函数中正则化中的平方项的作用!!

正则化上的平方项 前言在损失函数中添加正则化项时&#xff0c;通常会使用平方项作为正则化项&#xff0c;原因主要有以下几点&#xff1a; 前言 在损失函数中添加正则化项的原因主要是为了防止过拟合。正则化是一种常用的防止过拟合的技术&#xff0c;它可以对模型的复杂度进…

java反射的实战教程(简单且高效)

1. 参考 建议按顺序阅读以下文章 学了这么久的java反射机制&#xff0c;你知道class.forName和classloader的区别吗&#xff1f; Java反射&#xff08;超详细&#xff01;&#xff09; 2. 实战 2.1 通过Class.forName()方法获取字节码 这个方法会去我们的操作系统寻找这个cl…

linux、widnows的免费局域网桌面远程工具之NoMachine

统信UOS、银河麒麟及其他的linux桌面系统/windows系统都可进行远程桌面操作使用。 1.先到官网下载https://downloads.nomachine.com/自己使用的软件版本。 2.首先下载windwos端的的版本64位进行安装&#xff0c;安装是先暂时退出windows的杀毒软件&#xff0c;以免提示你各种确…

RabbitMQ入门指南(三):Java入门示例

专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、AMQP协议 1.AMQP 2.Spring AMQP 二、使用Spring AMQP实现对RabbitMQ的消息收发 1.案例准备阶段 2.入门案例&#xff08;无交换机&#xff09; 3.任务模型案例&#xff08;Work Queues&#xff0…

论文笔记:Accurate Localization using LTE Signaling Data

1 intro 论文提出LTELoc&#xff0c;仅使用信令数据实现精准定位 信令数据已经包含在已在LTE系统中&#xff0c;因此这种方法几乎不需要数据获取成本仅使用TA&#xff08;时序提前&#xff09;和RSRP【这里单位是瓦】&#xff08;参考信号接收功率&#xff09; TA值对应于信号…

5.6 Linux rsync 服务

1、rsync 概念介绍 官方网站&#xff1a;rsync rsync(Remote Sync) 是一个Unix/linux系统下的文件同步和传输工具。Rsync通过“rsync算法”提供了一个客户机和远程服务器的文件同步的快速方法。 采用C/S模式 端口tcp:873 a. rsync 特性 ① 可以镜像保存整个目录树和文件系…

月薪30k的软件测试工程师,是一个什么样的工作状态?

一位大佬的亲身经历 用了大概6年的时间&#xff0c;成为了年薪30w的测试开发。 回顾我从功能测试到测试开发的成长路径&#xff0c;基本上是伴随着“3次能力飞跃”实现的。 年名企大厂测试岗位内推文末获取&#xff01;2022年名企大厂测试岗位内推文末获取&#xff01; 第一…

OpenCV消除高亮illuminationChange函数的使用

学更好的别人&#xff0c; 做更好的自己。 ——《微卡智享》 本文长度为1129字&#xff0c;预计阅读4分钟 导语 上一篇《OpenCV极坐标变换函数warpPolar的使用》中介绍了极坐标变换的使用&#xff0c;文中提到过因为手机拍的照片&#xff0c;部分地方反光厉害。OpenCV本身也有一…

使用yarn安装electron时手动选择版本

访问1Password或者其他可以提供随机字符的网站&#xff0c;获取随机密码运行安装命令 操作要点&#xff0c;必须触发Couldnt find any versions for "electron" that matches "*"才算成功 将复制的随机密码粘贴到后面 例如&#xff1a;yarn add --dev elec…

CAS-源码分析引出Unsafe类、Unsafe类详解

CASDemo演示 public class CASDemo {public static void main(String[] args) {AtomicInteger atomicInteger new AtomicInteger(5);System.out.println(atomicInteger.compareAndSet(5, 2022) "\t" atomicInteger.get());//true 2022System.out.println(atomicI…

vit-transfomers 逐段精读

Vision Transformer Explained | Papers With Code 有趣的特性 在cnn中处理的不太好&#xff0c;但是在transformers 都能处理的很好的例子。 Intriguing Properties of Vision Transformers | Papers With Code 标题 AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE…

基于ETM+遥感数据的城市热岛效应现状研究的解决方案

1.引言 城市热岛效应&#xff08;Urban Heat Island Effect&#xff09;是指城市中的气温明显高于外围郊区的现象。在近地面温度图上&#xff0c;郊区气温变化很小&#xff0c;而城区则是一个高温区&#xff0c;就像突出海面的岛屿&#xff0c;由于这种岛屿代表高温的城市区域&…

【已解决】vs2015操作创建声明定义由于以下原因无法完成

本博文解决这样的一个问题&#xff0c;就是vs2015下用qt&#xff0c;在快速创建槽函数时给笔者报了个错误&#xff0c;错误的完整说法是这样子的”操作创建声明/定义“由于下列原因无法完成&#xff0c;所选的文本不包含任何函数签名。第一次遇到这种花里胡哨的问题&#xff0c…