设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
查看: 5589|回复: 1
打印 上一主题 下一主题

[信息技术] faster-whisper 更快的语音到文字的识别 ASR

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
 楼主| 发表于 2023-6-4 02:10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 nanimarcus 于 2023-6-4 02:24 编辑 / ?! [+ Q: Z; e1 \

. W" n; m% G8 \, ^借着 chatGPT 这股热潮研究了一下 Whisper,学名叫 automatic speech recognition (ASR) ,就是转换声音到文字的。# ^& |$ J2 d8 W, {7 p
效果我是很满意的,唯一不满的是速度,在六年前的主流显卡上基本上是一倍速,基本上只用在自己特别喜欢的媒体文件上了。
9 {+ d8 V8 p3 w; Q7 x* G----------------------------------------, K5 G' Q3 j7 G' O$ a8 w
显然不满意的不是我一个,活雷锋很快就出来了,名字很谦虚也很霸气 faster-whisper。9 P7 g; }# _. Z2 p& T2 }, H1 _
在六年前主力显卡3G内存上,model small,能跑到12倍速,这个是相当满意了。
( m" C8 p% |" F0 {1 y- U----------------------------------------
: c' z4 O) \% B# nhttps://github.com/guillaumekln/faster-whisper4 G. H5 \' n7 b. C. K$ N
安装如下:8 d: G5 C3 x5 k- _& a# U: e
1, Windows 10
6 u  R- D4 p( }/ Y6 S2, Python 3.10.11, P% ?' G1 H7 O" e4 z0 }" T
3, CUDA 12.1% U* B7 }" |! r/ M- H2 l
4, 在python 3 中安装
2 g5 x/ E+ \- j; p$ W" R. Hpip install setuptools-rust torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117' s9 k1 ]4 B/ f; @
这一步最后一个安装文件 cu117-cp310-cp310-win_amd64.whl 大小2343.6 MB,如果没显示,你得检查一下你的环境。
/ _4 @* i( q9 d4 \5,pip install -U openai-whisper
! q# [+ m2 B- ]" x这是向whisper 致敬,可以不装
$ P% v) m4 G) j! \6,pip install faster-whisper
* ~! g3 A* C- t- j" o, U& E----------------------------------------/ \5 y% r9 C2 g9 n: ]7 a
whisper 我用的命令行,faster-whisper 我用的是python。* e: n; l* a3 E% g5 ]. v% f4 j
下面给出了部分参考代码,根据主页上的参考代码我做了修改,但这个不是能运行的代码:
" o$ j, o( M4 ^6 w) l; n0 i- N2 o& D, F& r" `: n3 b+ m; m$ X
----------------------------------------
% A6 [5 f# ]: W# y8 \) u- l1 i4 v# \  e: }5 a! p! X+ b9 d
from faster_whisper import WhisperModel
# w  V, D- p1 W1 [  m+ W+ B- E3 ?, F. s
model_size = "small"
9 s/ m7 B: F. Z# j( {/ X' V" L3 R- J' }
model = WhisperModel(model_size, device="cuda", compute_type="int8")
8 i; P; W# l4 ?4 j
& z8 p) v) u% W" O4 D5 i$ a2 G/ S. ]segments, info = model.transcribe(
% W" r9 k" v* D' ~7 g' \" N    sourceFileName,
- V, ~9 K/ {& Q7 w8 _, v    beam_size=5,
+ i8 l( \7 Q1 e- m5 x3 p    language="en",
+ x, T& j8 d! t9 J' ^    task="transcribe", 4 k# U, ?: I, U) T
    word_timestamps=True,
7 L$ W/ g/ n# _* w    initial_prompt = "Hello, welcome to my lecture.")+ {/ e% {; J% O

/ K; G7 b- o) d3 T7 @$ |; Yfor segment in segments:2 D* a$ K. z7 Z2 E
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))9 @# u! G, z* C9 r

, W2 \! ]/ W1 {2 I& [) d7 S2 O- T        for word in segment.words:+ |& O7 I1 d. k
                2 V* V7 n9 x$ l5 ~
----------------------------------------
% E! [. v- }3 q- `8 U4 ^+ g
  j2 ^8 q6 v' x# h代码说明:
, p/ W% s+ c( m7 V* [% l1,model.transcribe 只是建立了模型,并没有运行,运行 是从 for segment in segments: 这一句开始的。/ E. P; M5 A, U4 S% u" o
但是这一步很重要(废话),我的程序有时候会无征兆退出就是在这一步,没有任何错误信息,倒是Windows 侦测到,但也没给出有意义的信息。8 w9 d7 T# `# O% s
2,segment 本身是很粗糙的,做字幕勉强能用。% R! h9 Q$ y3 K' _- p! d) F
3,word 才是真正的精确控制的,本身带时间轴,所以要做比较好的字幕,必须用到word。
, a! R+ c3 K9 P8 E9 D# {8 Q: f4,word 里面是包含标点符号的,也就是说标点符号不是独立的,是附着在前一个word中
$ D, q' U3 j, u4 [. K6 O比如 "faster." 这个句号是和前一个单词 faster 放在同一个 word 里面的。6 h& r+ T4 ?, }
5,model.transcribe 中参数说明:; D( q0 `3 @5 I/ M
你要是对 whisper 的参数有所了解的话,基本上这些参数就是对应whisper 的参数8 o+ H. }3 P$ L
其中& f+ M. `/ G, z' X! [6 O' a0 Z
    word_timestamps=True,
: W1 |5 S. M& S' w保证了你能拿到 word,否则是拿不到的
; o8 l0 V- e% S$ D; @    initial_prompt = "Hello, welcome to my lecture.")
$ u9 ^6 N) N! J* ]  f  V保证能尽可能准确的断句 punctuation,但是不是决定性的。
. g2 {9 _( _7 ~; E, y其他参数可参考源文件:
2 x% K' ]0 t+ d+ d' G# W* jhttps://github.com/guillaumekln/ ... isper/transcribe.py3 _% X2 N( A/ H4 C% i8 }* ?7 \
152 def transcribe(2 P  V& C, U/ C
从源文件你可以看到是支持中文的句号断句的。. _! u. s- v# T! W) a( N

6 m/ h' I7 N, q9 ~0 t4 _/ B/ {5 b6,如果要尽可能准确的 punctuation,根本办法是用比较大的模型 medium,或者更大。
; B1 r5 W1 D. R  l7,我自己观察一个小时之内可以保证断句准确,再长就很可能不行,所以我的办法是切割文件到一个小时,识别后再聚合,效果不错。
$ c4 M+ I) I1 j8,faster-whisper 会上传一些信息,检测到不停的使用网络,曾经有一次代码出错就是访问网络,你要是有洁癖就把网络暂时给关了。
( B# z; Z) I( F. B2 x, m
- A. E% v) }) q, W( P/ y. N
3 D# E8 C4 z% V1 K7 H+ F
! _# z6 p/ w; }

评分

参与人数 4爱元 +32 收起 理由
蓦然回首 + 8
唐家山 + 4
老票 + 12
老财迷 + 8

查看全部评分

该用户从未签到

沙发
 楼主| 发表于 2023-6-4 11:53:23 | 只看该作者
多谢各位榜爷打赏。
回复 支持 反对

使用道具 举报

手机版|小黑屋|Archiver|网站错误报告|爱吱声   

GMT+8, 2026-5-18 20:19 , Processed in 0.056897 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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