设为首页收藏本站

爱吱声

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
 楼主| 发表于 2023-6-4 02:10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 nanimarcus 于 2023-6-4 02:24 编辑
/ _0 n% w% @. E" T% }, ~, g* E" u
借着 chatGPT 这股热潮研究了一下 Whisper,学名叫 automatic speech recognition (ASR) ,就是转换声音到文字的。
) w" u; K/ H7 n  d/ W. `7 \0 y效果我是很满意的,唯一不满的是速度,在六年前的主流显卡上基本上是一倍速,基本上只用在自己特别喜欢的媒体文件上了。
0 b( y+ G' b, a----------------------------------------
/ @+ B+ J  J. \8 S& `显然不满意的不是我一个,活雷锋很快就出来了,名字很谦虚也很霸气 faster-whisper。7 |. l) }' H5 N8 X* x7 b1 @
在六年前主力显卡3G内存上,model small,能跑到12倍速,这个是相当满意了。
% D( j  K) ~0 V! H% Y6 M! L5 c3 u----------------------------------------
+ [+ R: @% u2 S4 x0 r+ bhttps://github.com/guillaumekln/faster-whisper
# K' x+ C1 R, W" v4 [# y# k- X$ b8 S9 p安装如下:
& [, j# Y0 V  I; _8 l; \/ z1, Windows 10
# L9 I& a, z$ |( ]2, Python 3.10.11
5 F- |- G2 p" O% z2 U3, CUDA 12.1( u8 k" N! O& h  Y; A
4, 在python 3 中安装
# T1 X: X: ?* q1 Ypip install setuptools-rust torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117  P8 ^9 k1 B4 m3 i
这一步最后一个安装文件 cu117-cp310-cp310-win_amd64.whl 大小2343.6 MB,如果没显示,你得检查一下你的环境。
+ ]% U8 A3 b2 H$ [8 `8 b5,pip install -U openai-whisper1 ^* [0 ?$ @2 D" o2 ~6 M
这是向whisper 致敬,可以不装# k' X2 s% s& ]9 [
6,pip install faster-whisper7 {3 q2 v% e5 K
----------------------------------------
/ H5 O* w& l$ \1 b7 m$ Wwhisper 我用的命令行,faster-whisper 我用的是python。
: A; F& {  h4 M9 D6 `$ E0 y4 ^下面给出了部分参考代码,根据主页上的参考代码我做了修改,但这个不是能运行的代码:! m2 I$ C/ v! ]9 l

' w: @. |5 V7 a& K----------------------------------------5 m# x( j# v0 S. ]1 V; o

( y- o$ V3 I& I: E! a& h" Wfrom faster_whisper import WhisperModel$ ]. f9 O% [, T8 A) H0 u4 P
3 W$ D% ^( \# P8 q# z
model_size = "small"
/ V( _5 A) ]  v/ T! ], _$ S3 i+ Q7 \" _5 M% Z
model = WhisperModel(model_size, device="cuda", compute_type="int8")
6 ^8 W8 r; Z: q+ J& u
; N  G# g0 o! w8 ], B5 Esegments, info = model.transcribe(
- y" Q! D$ `0 p5 `    sourceFileName, 5 q  Y8 }2 N# r' Y0 l* k% y( }
    beam_size=5,
4 {+ d% {7 \8 |$ D7 u    language="en",   x/ {5 r9 h0 o, f# M' W3 S
    task="transcribe", - M3 S0 l* }1 B: C- J
    word_timestamps=True,
3 e  r5 n# p# O. B    initial_prompt = "Hello, welcome to my lecture.")
. K8 s' _. A. e# C
+ Y8 M9 B) C, P! O$ o2 H' dfor segment in segments:" X: V) F9 V1 E/ O! z, T* y
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))/ }# H7 B* e! C6 o9 `2 X
2 ~' s% g1 k5 e
        for word in segment.words:
% ?1 @4 u+ G& T! B/ a0 W/ x" E               
: ^/ s1 Z8 Q3 c$ ~- L1 ^0 [7 s----------------------------------------- q) l& K+ g" z3 m

" ~$ i/ d0 N: K. X代码说明:
- |2 ^' e1 U: r& o8 y9 ?  f: Z1,model.transcribe 只是建立了模型,并没有运行,运行 是从 for segment in segments: 这一句开始的。) ^4 t7 ], G4 }5 O6 S( b
但是这一步很重要(废话),我的程序有时候会无征兆退出就是在这一步,没有任何错误信息,倒是Windows 侦测到,但也没给出有意义的信息。/ [( e; Q- `, L7 i+ I. I
2,segment 本身是很粗糙的,做字幕勉强能用。
3 z7 W) S9 U' o8 q3,word 才是真正的精确控制的,本身带时间轴,所以要做比较好的字幕,必须用到word。
2 V; L$ i& Q" l8 f2 ]0 [4,word 里面是包含标点符号的,也就是说标点符号不是独立的,是附着在前一个word中
  q. l0 t7 s, _3 u/ j比如 "faster." 这个句号是和前一个单词 faster 放在同一个 word 里面的。4 v  d. e& j% G
5,model.transcribe 中参数说明:
4 k' Q- e+ E# K! C/ _! z你要是对 whisper 的参数有所了解的话,基本上这些参数就是对应whisper 的参数9 w3 J0 Z, Q2 U( R' E! Q
其中) {/ a  F1 r8 s) x
    word_timestamps=True, 9 E2 \' a# \- c7 L, Z# V
保证了你能拿到 word,否则是拿不到的
) q* S, J' l+ h$ P    initial_prompt = "Hello, welcome to my lecture.")6 b4 t( ~7 [" h7 J5 o) H
保证能尽可能准确的断句 punctuation,但是不是决定性的。( q  x8 T0 F2 q1 ~  N
其他参数可参考源文件:2 K& A+ ^) B7 E% b
https://github.com/guillaumekln/ ... isper/transcribe.py$ y/ U: T1 a+ [6 L$ B% f
152 def transcribe($ M$ S9 M7 |8 P& {  g9 @% ^
从源文件你可以看到是支持中文的句号断句的。
/ f/ \$ B% k5 e! s5 j, {2 V. C! Y5 B3 |. a+ ~# c" L# q
6,如果要尽可能准确的 punctuation,根本办法是用比较大的模型 medium,或者更大。0 w! \( ], e: h3 k6 a% I1 {
7,我自己观察一个小时之内可以保证断句准确,再长就很可能不行,所以我的办法是切割文件到一个小时,识别后再聚合,效果不错。
% z5 V1 b5 n6 p$ g8,faster-whisper 会上传一些信息,检测到不停的使用网络,曾经有一次代码出错就是访问网络,你要是有洁癖就把网络暂时给关了。
9 v# z" p; e9 _" u9 l6 M; `* C5 m

) K1 `6 q, b, N, Q- R# n( \
; K$ N/ z" s0 V

评分

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

查看全部评分

该用户从未签到

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

使用道具 举报

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

GMT+8, 2026-9-23 12:31 , Processed in 0.060586 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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