西西河

主题:OpenAI Whisper 转换声音到文字 -- nanimarcusboy

共:💬12 🌺51
全看分页树展 · 主题
家园 OpenAI Whisper 转换声音到文字 -- 有补充

chatGPT 很火,背后的公司 OpenAI。

这个公司有很多技术,我看到有一个是 Whisper,学名叫 automatic speech recognition (ASR) ,就是转换声音到文字的。

我用过很多类似的工具,所以很有兴趣的研究了一下,然后这个 Whisper 惊艳了我的无聊时光。

喃喃自语 居然这么强大,真是 于无声处听惊雷。

下面讲讲怎么安装使用。

----

网址和代码:

https://openai.com/blog/whisper/

https://github.com/openai/whisper

记住,一定要安装 CUDA 版本,利用显卡,完全靠CPU,实在费劲。

准备12G硬盘最少。

----

Windows 10, Nvidia CUDA 的安装过程。

https://developer.nvidia.com/cuda-downloads

Windows -> X86_64 -> 10 ->exe(local)

得到一个很大的安装文件,安装

--

Python 3, torch 安装

如果原来安装了,卸载掉。

pip3 uninstall torch torchvision torchaudio

--

torch CUDA 版本要下载一个2.4G 的安装包,和CPU版本明显不同。

pip3 install setuptools-rust

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

--

whisper 卸载,如果原来装过,建议重新安装一次

pip3 uninstall openai-whisper

--

whisper 安装

pip3 install -U openai-whisper

--

然后试一下。

whisper -h

注意其中一行,设备

如果是CPU,那么CUDA就没有安装成功

--device DEVICE device to use for PyTorch inference (default: cpu)

CUDA安装成功,显示的就是CUDA

--device DEVICE device to use for PyTorch inference (default: cuda)

----

找一个wav文件,试一下,用的是 small model,已经够好了。

whisper --model small -f all --language en out.wav

第一次运行,需要下载 model 文件,small 大概400M。

-f all ,有多种格式 全部都要。

--language en ,指定英文,否则会自动探测

另外还自带其他语言翻译成英文的功能,我还没有用过。

--

whisper 是能够直接读取MP4之类的视频文件,但是先做处理更有效率。

网上人建议的是 16K 的wav文件,转换命令如下:

ffmpeg -i input.mp4 -acodec pcm_s16le -ar 16000 out.wav

--

Windows 10 打开 task manager, 看到我的GPU的内存全部占用,GPU占用70%

--

结果我很满意,准确的断句,专用词识别,人名地名大小写,缩写,甚至有些专业词汇也能识别。

一个大叔两个半小时的讲话,语速快,口语化极其严重,涉及到很多地名人名,两个小时识别完成,断句很准确,基本上所有名字,包括缩写都识别出来了。

一个讲中途岛海战的讲话,所有日本人名,日本舰船的名字都识别出来。

而且所有日期数量都准确写好,而不仅仅是用英文打出来。

看的出来,不仅仅是语言识别,也有大量网上文本的训练

--

好吧,下一步的问题是,程序员同志们的工作机会是更多了呢,还是更少了呢。

通宝推:愚弟,唐家山,川普,心有戚戚,奔波儿,
作者 对本帖的 补充(3)
家园 OpenAI Whisper 使用的感受和想法 -- 补充帖

OpenAI Whisper 用了几天,一些感受。

1,监控CUDA, Windows 10

Task Manager -> GPU -> CUDA

右边一般四个框,最常用的性能,第一个隐含是3D,点一下,换成 CUDA。

我这里基本 90% 以上。

2,拿个小风扇,对着显卡吹,不然太烫了,吹了就是有点烫。

3,如果文件里人的声音不是很清楚的话,断句就没有了,字词还在,基本准确。

4,显卡的内存限制你使用的model,我的老显卡只能用 small,你要用更大的模型需要有大内存的显卡。

--

网上有人写了一个脚本 whisper_mic,可以实时识别,但是Linux的,我没有试过。

--

讯飞的桌面版我用过,但是明显在网上传数据,只能放在隔离的机器上用。

--

微信是24小时监控麦克风的,你说的内容实际上给你上传了,所以我尽量不用。

家园 Whisper 隐含是英文,模型用 small.en,语言不 -- 补充帖

Whisper 隐含是英文,模型用 small.en,语言不用指定

whisper --model small.en -f srt A.whisper.wav

----

如果是其他语言,比如德语,模型用 small,语言指定德语

whisper --model small -f srt --language de A.whisper.wav

----

如果是其他语言,比如德语,且翻译成英语,模型用 small,语言指定德语,指定任务是翻译。

whisper --model small --task translate -f srt --language de A.whisper.wav

----

那么理论上Whisper 应该可以将一个德语文档翻译成英文,也许代码里应该可以修改出来。

家园 没看懂, 既然用 API 对文件大小有限制, 那就买块显卡本 -- 补充帖

没看懂, 既然用 API 对文件大小有限制, 那就买块显卡本地跑, 就是个电费.

我跑过最大的一个视频文件2G 的MP4, 转换成 wav 文件大概 400M, wav 文件大概一个小时200M左右, 运行需要的时间大概 1:1 , 不过我的显卡太老了.

如果买块3080的是不是会跑的飞快.

而且作者似乎不知道应该用显卡跑, 用CPU太弱了.

"

OpenAI开源了语音识别模型Whisper,这个模型你是可以本地跑的,配合训练好的数据集可以离线识别语音,但是对机器配置有要求,另外你想识别效果好,得好几G的存储和内存。它也提供了API,这样服务端可以帮你跑,不需要你本地运行程序,但是一次最大文件大小25MB,价钱10分钟6美分

"

全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河