设为首页收藏本站

爱吱声

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
 楼主| 发表于 2023-6-4 02:10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 nanimarcus 于 2023-6-4 02:24 编辑 0 ^( J5 r$ I2 r: w5 n, @8 n
% w3 L1 o+ G8 P9 a4 S/ O
借着 chatGPT 这股热潮研究了一下 Whisper,学名叫 automatic speech recognition (ASR) ,就是转换声音到文字的。4 e6 r3 ?% ?$ N1 N# e, Q0 n
效果我是很满意的,唯一不满的是速度,在六年前的主流显卡上基本上是一倍速,基本上只用在自己特别喜欢的媒体文件上了。
) C2 o( v; e- N' {----------------------------------------7 {! _, @2 B6 X& X1 H
显然不满意的不是我一个,活雷锋很快就出来了,名字很谦虚也很霸气 faster-whisper。
. \6 c3 d% D' J8 R5 s在六年前主力显卡3G内存上,model small,能跑到12倍速,这个是相当满意了。
$ b! n1 V  ~2 M5 I! H# a----------------------------------------0 I# v  j" O! B! p$ q
https://github.com/guillaumekln/faster-whisper
3 @: r+ ?! \3 t  S4 @8 Z' L安装如下:
) s4 o8 ]) h4 w- g1, Windows 103 ?' W  L) k5 X1 R* G0 j% u
2, Python 3.10.11! A5 X2 n& h; M& O3 ^3 f5 ~. @6 h  s
3, CUDA 12.1: V0 ~  B7 ?, V  W
4, 在python 3 中安装* P4 e# T" [# A( D8 O# L
pip install setuptools-rust torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117: w0 ^% @* O- \9 Q$ t1 f+ E0 F
这一步最后一个安装文件 cu117-cp310-cp310-win_amd64.whl 大小2343.6 MB,如果没显示,你得检查一下你的环境。, g8 X4 O4 {- {4 F$ _
5,pip install -U openai-whisper6 F  \& e) k) a! D7 l" S
这是向whisper 致敬,可以不装
- y& {) r/ t& C: N3 `6,pip install faster-whisper9 @& g: b1 u2 _! Z  E6 p
----------------------------------------
; i8 e) x9 w( u, B: Awhisper 我用的命令行,faster-whisper 我用的是python。
3 n- N/ j% O% b2 u/ s2 w下面给出了部分参考代码,根据主页上的参考代码我做了修改,但这个不是能运行的代码:
/ T/ L7 T5 a5 A+ z; A& F7 M4 k
6 g, F) D1 D3 Y4 ?/ z3 M----------------------------------------
' I, E, }7 r# x3 g. c' k5 T
1 E& A) j! z( Y- O1 V5 I/ @( Kfrom faster_whisper import WhisperModel9 |# Z0 L  _( n9 [
+ d, d$ e* L9 \0 o
model_size = "small"( E) [0 e4 v& ~& o

* z3 }) ]4 d/ m! n- Omodel = WhisperModel(model_size, device="cuda", compute_type="int8")
) a, x- a* p. L; u6 K" Z, d
! D" E4 i$ J4 N% G; `7 usegments, info = model.transcribe(
+ X% C$ t6 q! P: ?0 m2 `9 T0 }6 X* X    sourceFileName, & x0 X. `) v$ `7 `
    beam_size=5,
: |* |* M. r; |    language="en",
' O! q* A3 J& _8 c" I& h( d    task="transcribe", 0 V7 Q6 v2 }7 L; ^- y: U4 d
    word_timestamps=True, , P% S# b* v2 h! T6 u7 B; t6 q7 {
    initial_prompt = "Hello, welcome to my lecture.")' N: L7 J+ k9 ~/ _9 P4 w
# I! N$ ~7 ]$ o* k' w0 P! q
for segment in segments:  |; Y* k9 l+ R: B  y) {
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
  v1 K6 o1 m. W9 _, x9 N& L4 k1 R$ \; [% o& L
        for word in segment.words:
1 r0 u2 N* q8 e9 |" g                " q+ h) g) M- E: H2 V
----------------------------------------
8 b/ v! V8 ^4 l. h
0 F# X" [' R" Z6 d代码说明:
: Q: x- A9 x4 p3 }1,model.transcribe 只是建立了模型,并没有运行,运行 是从 for segment in segments: 这一句开始的。
# p& \8 v, d1 B: b但是这一步很重要(废话),我的程序有时候会无征兆退出就是在这一步,没有任何错误信息,倒是Windows 侦测到,但也没给出有意义的信息。0 W& U" O* h( v. _# g, u/ A
2,segment 本身是很粗糙的,做字幕勉强能用。
0 O3 Q7 R3 U0 G3,word 才是真正的精确控制的,本身带时间轴,所以要做比较好的字幕,必须用到word。
6 p) O9 d1 O* i( g6 ^4,word 里面是包含标点符号的,也就是说标点符号不是独立的,是附着在前一个word中& L3 M# f' q1 y: _
比如 "faster." 这个句号是和前一个单词 faster 放在同一个 word 里面的。
$ G: m# Q8 n6 [$ `3 G5,model.transcribe 中参数说明:8 W# z1 g1 Y  W0 h  [$ ^3 Z8 ^
你要是对 whisper 的参数有所了解的话,基本上这些参数就是对应whisper 的参数
% ^, g: }* g  B$ v其中0 P0 U& w9 S7 K; H& v5 c$ T
    word_timestamps=True,
0 S' R0 p. f8 W: `保证了你能拿到 word,否则是拿不到的; f. R% K  X. g6 y( ^" R2 O
    initial_prompt = "Hello, welcome to my lecture.")6 F, [# Y. Y) M- D3 j/ y. f
保证能尽可能准确的断句 punctuation,但是不是决定性的。
% z$ D7 i3 E) F' w其他参数可参考源文件:
! F5 {6 ?' R% `https://github.com/guillaumekln/ ... isper/transcribe.py$ F/ C! m" M9 J
152 def transcribe(# w! m' y% g: W+ Q
从源文件你可以看到是支持中文的句号断句的。
* k( K+ O( M6 @# U9 ]$ ?9 A( @. L  X
6,如果要尽可能准确的 punctuation,根本办法是用比较大的模型 medium,或者更大。4 v8 r- Z) U  ~  x
7,我自己观察一个小时之内可以保证断句准确,再长就很可能不行,所以我的办法是切割文件到一个小时,识别后再聚合,效果不错。) C; ]: W" B6 w, _
8,faster-whisper 会上传一些信息,检测到不停的使用网络,曾经有一次代码出错就是访问网络,你要是有洁癖就把网络暂时给关了。
# G' @7 ?3 F" ~; y0 X, B
) |/ `( Q+ @$ D " @  \! P9 ~$ ^; J7 O( n5 l
9 x' C9 P9 I" w2 |% |

评分

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

查看全部评分

该用户从未签到

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

使用道具 举报

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

GMT+8, 2025-7-6 01:06 , Processed in 0.032883 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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