设为首页收藏本站

爱吱声

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
 楼主| 发表于 2023-6-4 02:10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 nanimarcus 于 2023-6-4 02:24 编辑
' O  |8 G4 |6 e* z& z! e
4 l1 p% b4 f5 I借着 chatGPT 这股热潮研究了一下 Whisper,学名叫 automatic speech recognition (ASR) ,就是转换声音到文字的。
" Z) t8 \! o9 Q% S, }效果我是很满意的,唯一不满的是速度,在六年前的主流显卡上基本上是一倍速,基本上只用在自己特别喜欢的媒体文件上了。
; C6 x! w: y( n; F3 c----------------------------------------
+ E! j, C! q6 W( o; C显然不满意的不是我一个,活雷锋很快就出来了,名字很谦虚也很霸气 faster-whisper。) f" W( j5 R/ s$ y6 a
在六年前主力显卡3G内存上,model small,能跑到12倍速,这个是相当满意了。
9 P, y2 x+ I% W5 r. H0 a/ X: P----------------------------------------
$ S& c- u+ n( w2 D2 j1 [0 D, U- uhttps://github.com/guillaumekln/faster-whisper
' t6 X6 V6 H  C# W7 ?安装如下:  o) O0 D  M5 u- ]
1, Windows 104 S3 `2 q3 K$ m) |; {
2, Python 3.10.11/ J+ l, C1 X$ Y$ q' l( O1 F8 F
3, CUDA 12.1
+ W/ P4 L6 n5 j: G2 ~0 ]; q4 X4, 在python 3 中安装
5 K: I& q: ?9 Wpip install setuptools-rust torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
! x  i) e7 w$ Q这一步最后一个安装文件 cu117-cp310-cp310-win_amd64.whl 大小2343.6 MB,如果没显示,你得检查一下你的环境。2 k0 ]: J" i' _  F5 R
5,pip install -U openai-whisper2 k) ?7 H, V5 ]1 y+ D# ]
这是向whisper 致敬,可以不装9 p4 k# Y+ L! V7 Y$ L
6,pip install faster-whisper
9 X7 E, B1 H2 E: Q----------------------------------------8 ?) {# |2 E& H' ~8 R2 O
whisper 我用的命令行,faster-whisper 我用的是python。
" l" q/ {( }1 G) D/ n) e7 ?; s$ G下面给出了部分参考代码,根据主页上的参考代码我做了修改,但这个不是能运行的代码:
1 \7 d! a6 H! s! G& g
1 k2 q; e8 ]1 p6 A4 L4 i/ ~----------------------------------------. c) y( H& `# D7 r& W. Y" S
/ }+ I- k9 T4 E
from faster_whisper import WhisperModel
; x) w* d# z3 T
8 x) Q; I$ I9 R9 Jmodel_size = "small"
3 E% J( P/ z, L! s- w  Y
; x% y* r# n# v( M* V+ Ymodel = WhisperModel(model_size, device="cuda", compute_type="int8")
3 j" [- J8 C5 v0 N0 |( C+ k( R  v3 v2 Q( L, E
segments, info = model.transcribe(; ?6 E0 H# Z; a" r) l
    sourceFileName, 9 Q# e! O* j, [+ V" k! v
    beam_size=5, & v5 g9 z7 n( d6 H: M4 z/ c; X$ g
    language="en",
$ i  O- q; F: ]    task="transcribe",
, Y* X& |9 l9 n9 N    word_timestamps=True, 7 H  m0 c8 r8 c  Y0 {  O  W, [. g
    initial_prompt = "Hello, welcome to my lecture.")
+ Z( {+ X, I8 B4 S/ ^  x& G0 b: W, e8 g) s  O
for segment in segments:! ~. B+ l) _+ T) |6 w# r+ A+ D1 Z
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))8 A- G5 D0 g+ T/ {$ A
( A2 J" {/ ~. ^" M* ~
        for word in segment.words:
% A0 p. m8 e! ^9 u( W               
' i" Q, ^, n6 @  M9 Q----------------------------------------" ?9 ]9 ]( {6 f7 W0 A( a

# P9 c/ B  ]0 \代码说明:0 {7 `* O- ]/ }+ L* R
1,model.transcribe 只是建立了模型,并没有运行,运行 是从 for segment in segments: 这一句开始的。
# z& Y% b2 M! Q; j+ E但是这一步很重要(废话),我的程序有时候会无征兆退出就是在这一步,没有任何错误信息,倒是Windows 侦测到,但也没给出有意义的信息。
  H; p, l' K$ f) i2,segment 本身是很粗糙的,做字幕勉强能用。
/ K) K3 ?. D; O4 f* x3,word 才是真正的精确控制的,本身带时间轴,所以要做比较好的字幕,必须用到word。
; o; x) }- W* A- B4,word 里面是包含标点符号的,也就是说标点符号不是独立的,是附着在前一个word中
5 ~  n" D/ H8 b( B# v- \比如 "faster." 这个句号是和前一个单词 faster 放在同一个 word 里面的。/ T0 o; `1 M6 D
5,model.transcribe 中参数说明:
: {: H! m' C+ m8 ]3 \5 Q  E你要是对 whisper 的参数有所了解的话,基本上这些参数就是对应whisper 的参数
% o$ T. {% {3 B6 m' K3 q: l其中% u+ r. H, O0 Z% r. L7 O9 Q* n
    word_timestamps=True, + n$ Y' q: u, h+ g
保证了你能拿到 word,否则是拿不到的* ~4 g; I& ?5 q6 m
    initial_prompt = "Hello, welcome to my lecture.")6 W- t  m. }9 o" V- b
保证能尽可能准确的断句 punctuation,但是不是决定性的。
' F- n. |+ C& I- J) q3 W' S6 Q其他参数可参考源文件:
) j; n7 y, A# g3 P* e$ P, qhttps://github.com/guillaumekln/ ... isper/transcribe.py
! i9 \  U  |5 m+ |6 d) Y$ u" Z152 def transcribe(
! z/ q4 ~) V- o) l! ]2 X  T7 J# L从源文件你可以看到是支持中文的句号断句的。# \, i. P- f4 c, u

% h$ p+ {/ E  s6 y6,如果要尽可能准确的 punctuation,根本办法是用比较大的模型 medium,或者更大。0 k- R; d8 t. G0 |& s! Z
7,我自己观察一个小时之内可以保证断句准确,再长就很可能不行,所以我的办法是切割文件到一个小时,识别后再聚合,效果不错。5 |5 c7 [, t# F0 P% ]
8,faster-whisper 会上传一些信息,检测到不停的使用网络,曾经有一次代码出错就是访问网络,你要是有洁癖就把网络暂时给关了。
6 G' a$ V6 _# f: @9 z# C. p  B! B+ H% k  I, u6 A, a* `, I

* ~  M9 f# Y2 K6 t) M  Z4 j- E
' C4 ^9 }  ?" p  a+ s

评分

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

查看全部评分

该用户从未签到

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

使用道具 举报

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

GMT+8, 2026-10-21 02:06 , Processed in 0.055746 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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