Python使用whisper实现语音识别(ASR)的示例代码

 更新时间:2024年03月20日 09:55:51   作者:怎么这么多名字都被占了  
Whisper是OpenAI的一个强大的语音识别库,支持离线的语音识别,本文主要介绍了Python使用whisper实现语音识别(ASR)的示例代码,具有一定的参考价值,感兴趣的可以了解一下

Whisper的安装

Whisper是OpenAI的一个强大的语音识别库,支持离线的语音识别。在使用之前,需要先安装它的库:

pip install openai-whisper

使用whisper,还需安装setuptools-rust:

pip install setuptools-rust

但是,whisper安装时,自带的pytorch可能有些bug,因此需要卸载重装:

卸载:

pip uninstall torch

重装:

pip install torch

另外,需要通过choco安装ffmpeg库。先通过管理员权限的PowerShell安装choco:

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

然后,在管理员权限的PowerShell安装ffmpeg:

choco install ffmpeg

完成这些步骤之后,我们就可以使用啦!

Whisper的基本使用

whisper的基本代码如下:

import whisper

model = whisper.load_model("base")
result = model.transcribe("zh.wav")
print(result['text'])

其中,zh.wav可以换成你自己的音频。我的控制台输出:

我們說,40月2日混淩土不能與引力長相互攪拌不然會因為愛銀斯坦的相對論而引發雜串的食品安全問題這是嚴重的金融危機

可以看到,它的识别结果还行(因为我的音频是AI合成的,识别会有一定误差),但是输出的是繁体中文,我们需要把他变成简体中文。

识别结果转简体中文

可以通过opencc库实现转化,先安装:

pip install opencc

然后修改代码:

import whisper
import opencc

model = whisper.load_model("base")
result = model.transcribe("zh.wav")
cc = opencc.OpenCC("t2s")
res = cc.convert(result['text'])
print(res)

输出:

我们说,40月2日混凌土不能与引力长相互搅拌不然会因为爱银斯坦的相对论而引发杂串的食品安全问题这是严重的金融危机

断句

在一个语音中,我们都会有一些停顿。但是,在识别结果中,这些停顿并没有被完全表示出来。我们可以如此修改代码,实现按断句输出结果:

import whisper
import opencc

model = whisper.load_model("base")
result = model.transcribe("zh.wav")
cc = opencc.OpenCC("t2s")
for i in result['segments']:
    res = cc.convert(i['text'])
    print(f"断句开始于{i['start']}秒,结束于{i['end']}秒,识别结果:{res}")

输出:

断句开始于0.0秒,结束于5.36秒,识别结果:我们说,40月2日混凌土不能与引力长相互搅拌
断句开始于5.36秒,结束于11.14秒,识别结果:不然会因为爱银斯坦的相对论而引发杂串的食品安全问题
断句开始于11.14秒,结束于13.44秒,识别结果:这是严重的金融危机

到此这篇关于Python使用whisper实现语音识别(ASR)的示例代码的文章就介绍到这了,更多相关Python whisper语音识别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python导入Excel数据表的几种实现方式

    Python导入Excel数据表的几种实现方式

    在Python中可以使用许多库来处理Excel文件,下面这篇文章主要给大家介绍了关于Python导入Excel数据表的几种实现方式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Python实战之异步获取中国天气信息

    Python实战之异步获取中国天气信息

    这篇文章主要介绍了如何利用Python爬虫异步获取天气信息,用的API是中国天气网。文中的示例代码讲解详细,感兴趣的小伙伴可以动手试一试
    2022-03-03
  • python数据类型相关知识扩展

    python数据类型相关知识扩展

    今天带大家学习Python数据类型的扩展知识,文中有非常详细的介绍介代码示例,对正在学习python的小伙伴有很大的帮助,需要的朋友可以参考下
    2021-05-05
  • python实现员工管理系统

    python实现员工管理系统

    这篇文章主要介绍了python实现员工管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python的加密模块之hashlib 与 base64详解及常用加密方法

    Python的加密模块之hashlib 与 base64详解及常用加密方法

    我们来学习一下 Python 中的加密模块,加密模块在工作中被广泛应用,比如数据的传入 不希望被捕获,通过把数据加密。这样即使被捕获也无法获取到数据的真实信息,今天我们就来学习一下关于加密的方法,感兴趣的朋友跟随小编一起看看吧
    2023-02-02
  • Python列表删除的三种方法代码分享

    Python列表删除的三种方法代码分享

    这篇文章主要介绍了Python列表删除的三种方法代码分享,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • python中的单引号双引号区别知识点总结

    python中的单引号双引号区别知识点总结

    在本篇文章中小编给大家整理了关于python中的单引号双引号有什么区别的相关知识点以及实例代码,需要的朋友们参考下。
    2019-06-06
  • python正确读取文件路径的三种方式

    python正确读取文件路径的三种方式

    这篇文章主要介绍了python正确读取文件路径的三种方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python socket模块ftp传输文件过程解析

    Python socket模块ftp传输文件过程解析

    这篇文章主要介绍了Python socket模块ftp传输文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python中Pandas库的数据处理与分析

    Python中Pandas库的数据处理与分析

    Python的Pandas库是数据科学领域中非常重要的一个库,它使数据清洗和分析工作变得更快更简单,Pandas结合了NumPy的高性能数组计算功能以及电子表格和关系型数据库(如SQL)的灵活数据处理能力,需要的朋友可以参考下
    2023-07-07

最新评论