近期,OpenAI发布了Whisper语音识别模型,声称其在英语语音识别方面已接近人类水平的鲁棒性和准确性。出于对自动语音识别的兴趣,本人对此进行了一些尝试,看看它对中文语音识别的效果。
本内容仅供对语音识别有兴趣或者仅仅希望应用的入门朋友参考。
一、安装
测试电脑:MacBook Pro
测试系统:MacOS Monterey 12.6
1、安装brew
安装brew的目的是为了下一步安装python. 如果已经安装,请跳过。
在终端命令行中执行:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
选择合适的brew本体下载源,如“清华大学下载源“,然后一路按提示进行安装即可。
2、安装python
在终端命令行中执行:
brew install python
这里有一个很重要的点是:brew的方式安装python时默认是不执行certifi文件的,需要手动执行,否则在下载whisper模型时会出现ssl异常:
/Applications/Python\ 3.10/Install\ Certificates.command
其中3.10需要根据你的实际情况进行修改。
3、安装torch
在终端命令行中执行:
pip install torch
4、安装git
在终端命令行中执行:
brew install git
5、安装whisper
在终端命令行中执行:
pip install git+https://github.com/openai/whisper.git
6、安装ffmpeg
在终端命令行中执行:
brew install ffmpeg
7、安装rust
在终端命令行中执行:
pip install rust
二、测试
直接在命令行中执行:
whisper /Users/bmob/Downloads/8.m4a --model base --language Chinese
其中,/Users/bmob/Downloads/8.m4a 是你的语音文件路径。
base是模型名称,如果你想用其他模型,还可以选择:
越往后的模型,对硬件的要求越高,识别精度越高,当然了,速度也越慢。
我即兴了录了一段语音(24秒)去识别,发现tiny模型出来的结果是:
[00:00.000 --> 00:03.840] 书籍是知识的来源
[00:03.840 --> 00:08.960] 当你每天看书的时候就一定能够掌握更多的知识
[00:08.960 --> 00:11.520] 春天来了
[00:11.520 --> 00:20.480] 当你台头看去的时候就会有发现有很多很多的语业在慢慢的生长出来
[00:20.480 --> 00:30.480] 花椅开了小鳥椅飞了
在提示缺乏独立显卡的前提下,识别结果还是比较快速的。
small模型出来的结果是:
[00:00.000 --> 00:03.400] 书籍是知识的来源
[00:03.400 --> 00:08.400] 当你每天看书的时候就一定能够掌握更多的知识
[00:08.400 --> 00:11.000] 春天来了
[00:11.000 --> 00:14.400] 当你抬头看去的时候
[00:14.400 --> 00:18.400] 就会有发现有很多很多的玉叶
[00:18.400 --> 00:20.400] 再慢慢的生长出来
[00:20.400 --> 00:22.000] 花也开了
[00:22.000 --> 00:32.000] 小鸟也飞了
等待了接近二十秒,才出来结果。
用medium模型,识别出来的结果是:
[00:00.000 --> 00:04.000] 书籍是知识的来源
[00:04.000 --> 00:06.000] 当你每天看书的时候
[00:06.000 --> 00:09.000] 就一定能够掌握更多的知识
[00:09.000 --> 00:12.000] 春天来了
[00:12.000 --> 00:15.000] 当你抬头看去的时候
[00:15.000 --> 00:17.000] 就会有发现
[00:17.000 --> 00:19.000] 有很多很多的绿叶
[00:19.000 --> 00:21.000] 在慢慢地生长出来
[00:21.000 --> 00:23.000] 花也开了
[00:23.000 --> 00:31.000] 花也飞了
等待了近两分钟,才出来结果。
而large模型在实验机面前直接跑崩了。
三、总结
欢迎更多的朋友参与讨论如何使用whisper进行产品开发,模型训练,模型二次开发等。
QQ交流群:OpenAI交流群
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我正在用Ruby编写一个简单的程序来检查域列表是否被占用。基本上它循环遍历列表,并使用以下函数进行检查。require'rubygems'require'whois'defcheck_domain(domain)c=Whois::Client.newc.query("google.com").available?end程序不断出错(即使我在google.com中进行硬编码),并打印以下消息。鉴于该程序非常简单,我已经没有什么想法了-有什么建议吗?/Library/Ruby/Gems/1.8/gems/whois-2.0.2/lib/whois/server/adapters/base.
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在
导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD