设为首页收藏本站

爱吱声

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

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

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
 楼主| 发表于 2023-6-4 02:10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 nanimarcus 于 2023-6-4 02:24 编辑 ) N7 I- }* o( J( O* ^
1 S9 j( j1 F: e1 X  ^; K3 x
借着 chatGPT 这股热潮研究了一下 Whisper,学名叫 automatic speech recognition (ASR) ,就是转换声音到文字的。
9 @5 W% s0 B" o效果我是很满意的,唯一不满的是速度,在六年前的主流显卡上基本上是一倍速,基本上只用在自己特别喜欢的媒体文件上了。9 E5 w( G& w8 s  r# v  V
----------------------------------------* |& X  e/ T; z. `; w- n- ^
显然不满意的不是我一个,活雷锋很快就出来了,名字很谦虚也很霸气 faster-whisper。/ ~$ R, d3 ?- Z' J  |# [  S
在六年前主力显卡3G内存上,model small,能跑到12倍速,这个是相当满意了。
* |6 q8 Z% L0 ^----------------------------------------
3 P! L% [! e! g; P4 ~https://github.com/guillaumekln/faster-whisper) |6 \( T' S% K  @- ~
安装如下:8 g  P1 b  m7 Q
1, Windows 10
1 e( i. E8 }% U3 x2, Python 3.10.11
$ \) n5 V  |, \4 L8 [4 B8 }3, CUDA 12.15 y0 c9 P& t+ v& w
4, 在python 3 中安装
9 g( j  {; x6 C) ?4 f1 Kpip install setuptools-rust torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
/ r+ d( @8 {* s: |这一步最后一个安装文件 cu117-cp310-cp310-win_amd64.whl 大小2343.6 MB,如果没显示,你得检查一下你的环境。: R- @  B; f( Y( B
5,pip install -U openai-whisper
- q2 h2 w5 ]+ a1 L* ^7 t, D" d; T这是向whisper 致敬,可以不装
) c* U) g" g# z" T; J6,pip install faster-whisper
. y% r( ]1 l# V$ L+ c; b----------------------------------------( N. u+ c( M3 H
whisper 我用的命令行,faster-whisper 我用的是python。6 w5 A1 k8 g/ I8 W7 z% }4 c& a
下面给出了部分参考代码,根据主页上的参考代码我做了修改,但这个不是能运行的代码:
( v9 A3 |6 i0 b& y  u% _: c% i3 m5 ?
----------------------------------------
/ n& J) e: X1 n; ?7 ~3 C( o/ T6 }" {
from faster_whisper import WhisperModel1 O3 S+ O! A* {- `4 u9 @% a  u' \

- o+ G$ l! B6 n( i* I/ {- k4 Zmodel_size = "small"+ P0 e" P: S' o) P0 s5 J. m
; L* G3 |3 C2 M9 h
model = WhisperModel(model_size, device="cuda", compute_type="int8")* I& i' M: ?1 N! p

8 q1 n, b. U8 s0 x' rsegments, info = model.transcribe(
; u/ F' @9 V. M* G; J    sourceFileName,
( ~* s" a8 `7 j0 X; i9 ^    beam_size=5, - k7 @% E" a1 I8 y1 v! z
    language="en", ! a2 R8 t5 J& [' [# c
    task="transcribe",
0 T6 }- R' p; {! [: V* E  A    word_timestamps=True,
6 V' n  {. P2 d# t" |% o    initial_prompt = "Hello, welcome to my lecture.")6 y; J, u8 d% D# D5 q. y) ^

4 p5 A% \; @: a& v% y: M0 ofor segment in segments:$ n/ |" a) H$ J1 c4 g
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))) ]1 `8 @$ \7 O- q

: }  O% }: U) T        for word in segment.words:
3 C! Q/ h+ ~% b+ S* O: v" M                $ f. Q2 _) v3 g
----------------------------------------
: q) @! K: q1 @: Z
% q: U5 k1 W" ~. R4 O+ W代码说明:  b( a- N3 M( }5 I
1,model.transcribe 只是建立了模型,并没有运行,运行 是从 for segment in segments: 这一句开始的。
0 c' j6 D, `; Q& o2 \但是这一步很重要(废话),我的程序有时候会无征兆退出就是在这一步,没有任何错误信息,倒是Windows 侦测到,但也没给出有意义的信息。* ^, X5 X, `3 o% s9 y  i8 w
2,segment 本身是很粗糙的,做字幕勉强能用。4 J( |% d, u0 e# Q, X3 g0 {
3,word 才是真正的精确控制的,本身带时间轴,所以要做比较好的字幕,必须用到word。
3 \# o9 R+ F0 J+ w4,word 里面是包含标点符号的,也就是说标点符号不是独立的,是附着在前一个word中, u0 M! G5 l& T3 \+ W
比如 "faster." 这个句号是和前一个单词 faster 放在同一个 word 里面的。9 M: z$ D, b  Q1 j' Z! `, l2 {
5,model.transcribe 中参数说明:
# Z# I! x3 p' N$ J. d$ c你要是对 whisper 的参数有所了解的话,基本上这些参数就是对应whisper 的参数
8 f( ?1 }1 B: x/ ^' B4 _6 b其中
/ E! v6 |" h7 H6 x4 C    word_timestamps=True,
8 |0 O5 c+ C: o, Q& O保证了你能拿到 word,否则是拿不到的* V; o3 M2 h1 q
    initial_prompt = "Hello, welcome to my lecture."). Q' R/ L* e& L2 F! b
保证能尽可能准确的断句 punctuation,但是不是决定性的。
$ T7 D% w$ B% W2 u其他参数可参考源文件:3 D' c; _' K* c7 R# p( Y
https://github.com/guillaumekln/ ... isper/transcribe.py: q2 x& c: ~. u5 K+ w
152 def transcribe(
1 Z- U. k/ t6 i  Q9 E从源文件你可以看到是支持中文的句号断句的。, [9 ^% H& [  j" F6 M0 ^/ X
) j7 F( j; C, v$ o0 f1 l
6,如果要尽可能准确的 punctuation,根本办法是用比较大的模型 medium,或者更大。. E/ b9 d  N! }: s: L
7,我自己观察一个小时之内可以保证断句准确,再长就很可能不行,所以我的办法是切割文件到一个小时,识别后再聚合,效果不错。
$ U  L' a9 ]* b& H9 }& n0 p8,faster-whisper 会上传一些信息,检测到不停的使用网络,曾经有一次代码出错就是访问网络,你要是有洁癖就把网络暂时给关了。
( S: {8 m5 r$ G9 Q: u" R& x7 ]
" E+ p8 V8 `' U% O1 n
  X. t3 N( c# S, _8 B# }0 k: j
5 o+ I8 `) ], O" ^/ p, V2 v6 `2 f

评分

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

查看全部评分

该用户从未签到

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

使用道具 举报

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

GMT+8, 2026-7-8 03:58 , Processed in 0.056871 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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