找回密码
 立即注册
查看: 642|回复: 0

Python使用whisper实现语音识别(ASR)

[复制链接]

86

主题

0

回帖

894

积分

中级会员

积分
894
发表于 2024-4-24 15:55:32 | 显示全部楼层 |阅读模式
Whisper的安装

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

  1. pip install openai-whisper
复制代码
使用whisper,还需安装setuptools-rust:
  1. pip install setuptools-rust
复制代码

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

卸载:

  1. pip uninstall torch
复制代码
重装:
  1. pip install torch
复制代码
另外,需要通过choco安装ffmpeg库。先通过管理员权限的PowerShell安装choco:
  1. Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
  2. iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
复制代码
然后,在管理员权限的PowerShell安装ffmpeg:
  1. choco install ffmpeg
复制代码

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

Whisper的基本使用

whisper的基本代码如下:

  1. import whisper

  2. model = whisper.load_model("base")
  3. result = model.transcribe("zh.wav")
  4. print(result['text'])
复制代码
其中,zh.wav可以换成你自己的音频。我的控制台输出:
  1. 我們說,40月2日混淩土不能與引力長相互攪拌不然會因為愛銀斯坦的相對論而引發雜串的食品安全問題這是嚴重的金融危機
复制代码

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

识别结果转简体中文

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

  1. pip install opencc
复制代码
然后修改代码:
  1. import whisper
  2. import opencc

  3. model = whisper.load_model("base")
  4. result = model.transcribe("zh.wav")
  5. cc = opencc.OpenCC("t2s")
  6. res = cc.convert(result['text'])
  7. print(res)
复制代码
输出:
  1. 我们说,40月2日混凌土不能与引力长相互搅拌不然会因为爱银斯坦的相对论而引发杂串的食品安全问题这是严重的金融危机
复制代码
断句

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

  1. import whisper
  2. import opencc

  3. model = whisper.load_model("base")
  4. result = model.transcribe("zh.wav")
  5. cc = opencc.OpenCC("t2s")
  6. for i in result['segments']:
  7.     res = cc.convert(i['text'])
  8.     print(f"断句开始于{i['start']}秒,结束于{i['end']}秒,识别结果:{res}")
复制代码
输出:
  1. 断句开始于0.0秒,结束于5.36秒,识别结果:我们说,40月2日混凌土不能与引力长相互搅拌
  2. 断句开始于5.36秒,结束于11.14秒,识别结果:不然会因为爱银斯坦的相对论而引发杂串的食品安全问题
  3. 断句开始于11.14秒,结束于13.44秒,识别结果:这是严重的金融危机
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EnMaking

GMT+8, 2025-4-2 02:38 , Processed in 0.060325 second(s), 23 queries .

Powered by Qiqirobot

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表