设为首页收藏本站

爱吱声

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
 楼主| 发表于 2023-6-4 02:10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 nanimarcus 于 2023-6-4 02:24 编辑
% f- s9 D; |( y4 w# _3 I" H) M
6 m/ s2 w5 w. p( F/ E( X借着 chatGPT 这股热潮研究了一下 Whisper,学名叫 automatic speech recognition (ASR) ,就是转换声音到文字的。
' i5 n4 Z  m8 Q2 ~; m" d# `效果我是很满意的,唯一不满的是速度,在六年前的主流显卡上基本上是一倍速,基本上只用在自己特别喜欢的媒体文件上了。+ w: s6 a  ^; D/ z$ E
----------------------------------------
. |* a) i9 ~6 Z+ b& Y显然不满意的不是我一个,活雷锋很快就出来了,名字很谦虚也很霸气 faster-whisper。
5 S9 H  ?5 E! U( d3 x+ t- i$ x在六年前主力显卡3G内存上,model small,能跑到12倍速,这个是相当满意了。' u; v. G% K$ H
----------------------------------------
  S" j# R& }! k. g* ohttps://github.com/guillaumekln/faster-whisper. ]5 D# H+ v) o6 F
安装如下:2 u# Y- a$ s& V
1, Windows 10
; k, }8 D, i9 c2, Python 3.10.11
$ S( Q/ `9 b: F4 n0 i2 b2 D! {2 x; \3, CUDA 12.1; r! b$ ~! G3 y* t; D2 |! z  d
4, 在python 3 中安装% \4 P( u+ s7 |5 v% Y* ~
pip install setuptools-rust torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
) w) h* z- }5 T+ l, U/ m这一步最后一个安装文件 cu117-cp310-cp310-win_amd64.whl 大小2343.6 MB,如果没显示,你得检查一下你的环境。6 ?, q& ~) U& h7 ]
5,pip install -U openai-whisper
( ?0 ?& H  _" W/ s这是向whisper 致敬,可以不装
% @& N/ q1 l4 _3 |8 n6,pip install faster-whisper6 ]) ]9 C: d3 w& o" G
----------------------------------------0 q+ T: u& a9 f! S# }/ b
whisper 我用的命令行,faster-whisper 我用的是python。
, y! q# _( J+ t) k% M% s* W下面给出了部分参考代码,根据主页上的参考代码我做了修改,但这个不是能运行的代码:
  w% t& J$ H" z  N5 G; V( n2 k4 n3 f+ V4 Z, ?
----------------------------------------+ n  l* |" x* T( H) f$ e

" l/ ]2 y3 t' O4 P) n3 A8 |from faster_whisper import WhisperModel
/ o- ?$ v$ c2 p+ U5 E% Z+ i- o8 t7 v; h
model_size = "small"
; ^- _$ B% b. @) I+ Z7 a; z* C! \6 h, [4 d3 Z
model = WhisperModel(model_size, device="cuda", compute_type="int8")
6 Q4 h8 w$ m" E
& ?  @2 v# H! o, Fsegments, info = model.transcribe(
7 l9 P; n/ \1 F    sourceFileName,
: B) `& U, w. a8 w, [) Y    beam_size=5, % o4 x3 B$ C. U* t! E3 }
    language="en", 0 [: B# [" E! j0 s
    task="transcribe",
3 x. M5 K( ^, w* ?% u    word_timestamps=True, 0 J, e$ N! S( ^" ~2 D  O* y/ {
    initial_prompt = "Hello, welcome to my lecture.")6 z) w) p0 K9 p$ T* ~" O

5 }# j: A4 {* y5 I' b" hfor segment in segments:
9 u) O% w5 a  h& v  J    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
. f: |( A! }8 E5 v2 ~9 I
, t6 j" |; h2 @* b  L0 b        for word in segment.words:
; a" ^8 @9 A" H- ]/ P               
5 H3 L+ ]/ t. Z9 z) ?----------------------------------------
5 ^/ _3 r. c8 I+ F: X' x+ f' L* C* o( L% U, h
代码说明:+ M8 J, \' L/ w7 K" C: R9 A
1,model.transcribe 只是建立了模型,并没有运行,运行 是从 for segment in segments: 这一句开始的。) X" a6 @: |( v% m" N2 D
但是这一步很重要(废话),我的程序有时候会无征兆退出就是在这一步,没有任何错误信息,倒是Windows 侦测到,但也没给出有意义的信息。( m0 e0 [( `3 [% i4 _/ U
2,segment 本身是很粗糙的,做字幕勉强能用。( w5 ^* _9 Z3 v4 J0 S1 y9 J5 ?
3,word 才是真正的精确控制的,本身带时间轴,所以要做比较好的字幕,必须用到word。
8 X4 L, q! V% W4,word 里面是包含标点符号的,也就是说标点符号不是独立的,是附着在前一个word中7 X* R& n+ C: f; b! c
比如 "faster." 这个句号是和前一个单词 faster 放在同一个 word 里面的。9 v& m( h# u! k2 S* N* W
5,model.transcribe 中参数说明:
" T# I0 ^9 v( K) T你要是对 whisper 的参数有所了解的话,基本上这些参数就是对应whisper 的参数
$ q4 u7 _$ S! ]0 J其中
9 _8 G- z- A6 X) s" ]    word_timestamps=True, " H4 S" y9 J: \# m, R9 ?
保证了你能拿到 word,否则是拿不到的
& l/ y! v/ p+ k6 `    initial_prompt = "Hello, welcome to my lecture.")$ N- b$ C- M+ ?& x
保证能尽可能准确的断句 punctuation,但是不是决定性的。
% _: f  h5 I* |: O4 t  F4 I; c其他参数可参考源文件:
% ~3 e7 F; l9 M' R3 dhttps://github.com/guillaumekln/ ... isper/transcribe.py
; n8 `0 Z; x! G3 R$ F152 def transcribe(
. K6 ?; r, t! v: D* R1 Q7 ]( o从源文件你可以看到是支持中文的句号断句的。* \8 C$ L! }. ^' P

0 f' e  J8 _+ W; T1 D% N' H, p6,如果要尽可能准确的 punctuation,根本办法是用比较大的模型 medium,或者更大。5 W( ~( j0 m8 H1 g: A1 z0 J' |0 z
7,我自己观察一个小时之内可以保证断句准确,再长就很可能不行,所以我的办法是切割文件到一个小时,识别后再聚合,效果不错。2 _. g8 ?, t: p( u
8,faster-whisper 会上传一些信息,检测到不停的使用网络,曾经有一次代码出错就是访问网络,你要是有洁癖就把网络暂时给关了。
; i. x% Z, {3 W! d. r) X1 n- B* T* g: z" C: N' k; }
( S# z* \2 G- n: B6 i& E, r7 I8 c
0 h7 C" C$ q. E

评分

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

查看全部评分

该用户从未签到

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

使用道具 举报

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

GMT+8, 2026-7-21 19:46 , Processed in 0.057920 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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