实战whisper:本地化部署通用语音识别模型

这篇具有很好参考价值的文章主要介绍了实战whisper:本地化部署通用语音识别模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

        Whisper 是一种通用语音识别模型。它是在大量不同音频数据集上进行训练的,也是一个多任务模型,可以执行多语言语音识别、语音翻译和语言识别。

        这里呢,我将给出我的一些代码,来帮助你尽快实现【语音转文字】的服务部署。

        以下是该AI模块的具体使用方式:

        https://github.com/openai/whisper

心得

        这是一个不错的语言模型,它支持自动识别语音语种,类似中文、英文、日语等它都能胜任,并且可以实现其他语种转英语翻译的功能,支持附加时间戳的字幕导出功能......

        总体来说,它甚至可以与市面上领头的语言识别功能相媲美,并且主要它是开源的。

        这是它的一些模型大小、需要的GPU显存、相对执行速度的对应表

实战whisper:本地化部署通用语音识别模型,whisper,语音识别,人工智能

         这是它在命令行模式下的使用方式,这对想要尝尝鲜的小伙伴们来说,已经够了

实战whisper:本地化部署通用语音识别模型,whisper,语音识别,人工智能

        tips:

        1、首次安装完毕whisper后,执行指令时会给你安装你所选的模型,small、medium等,我的显卡已经不支持我使用medium了 

        2、关于GPU版本的pytorch,可以参考如下教程(使用CPU版本会比较慢)

        https://blog.csdn.net/G541788_/article/details/135437236

python调用 

        作为一名python从业者,我十分幸运能够读懂一些模块的相关使用,这里我通过修改了一些模块源码调用,实现了在python代码中一键导出语音字幕的功能(这些功能在命令行中已拥有,但是我希望在使用python脚本model方法后再实现该功能,可能这些你并不需要,但随意吧)。

        这个模块的cli()方法或许能更好实现这一功能(因为命令行模式,其实就是运行了这个方法,但我根据经验和实际代码来看,这会重复加载model,导致不必要的资源损耗)。

         1、__init__.py中加入get_writer,让你能通过whisper模块去使用这个方法

from .transcribe import get_writer

        2、相关功能代码文章来源地址https://www.toymoban.com/news/detail-799927.html

import os.path
import whisper
import time

# 这是语种langue参数的解释,或许对你的选择有帮助
LANGUAGES = {
    "en": "english",
    "zh": "chinese",
    "de": "german",
    "es": "spanish",
    "ru": "russian",
    "ko": "korean",
    "fr": "french",
    "ja": "japanese",
    "pt": "portuguese",
    "tr": "turkish",
    "pl": "polish",
    "ca": "catalan",
    "nl": "dutch",
    "ar": "arabic",
    "sv": "swedish",
    "it": "italian",
    "id": "indonesian",
    "hi": "hindi",
    "fi": "finnish",
    "vi": "vietnamese",
    "he": "hebrew",
    "uk": "ukrainian",
    "el": "greek",
    "ms": "malay",
    "cs": "czech",
    "ro": "romanian",
    "da": "danish",
    "hu": "hungarian",
    "ta": "tamil",
    "no": "norwegian",
    "th": "thai",
    "ur": "urdu",
    "hr": "croatian",
    "bg": "bulgarian",
    "lt": "lithuanian",
    "la": "latin",
    "mi": "maori",
    "ml": "malayalam",
    "cy": "welsh",
    "sk": "slovak",
    "te": "telugu",
    "fa": "persian",
    "lv": "latvian",
    "bn": "bengali",
    "sr": "serbian",
    "az": "azerbaijani",
    "sl": "slovenian",
    "kn": "kannada",
    "et": "estonian",
    "mk": "macedonian",
    "br": "breton",
    "eu": "basque",
    "is": "icelandic",
    "hy": "armenian",
    "ne": "nepali",
    "mn": "mongolian",
    "bs": "bosnian",
    "kk": "kazakh",
    "sq": "albanian",
    "sw": "swahili",
    "gl": "galician",
    "mr": "marathi",
    "pa": "punjabi",
    "si": "sinhala",
    "km": "khmer",
    "sn": "shona",
    "yo": "yoruba",
    "so": "somali",
    "af": "afrikaans",
    "oc": "occitan",
    "ka": "georgian",
    "be": "belarusian",
    "tg": "tajik",
    "sd": "sindhi",
    "gu": "gujarati",
    "am": "amharic",
    "yi": "yiddish",
    "lo": "lao",
    "uz": "uzbek",
    "fo": "faroese",
    "ht": "haitian creole",
    "ps": "pashto",
    "tk": "turkmen",
    "nn": "nynorsk",
    "mt": "maltese",
    "sa": "sanskrit",
    "lb": "luxembourgish",
    "my": "myanmar",
    "bo": "tibetan",
    "tl": "tagalog",
    "mg": "malagasy",
    "as": "assamese",
    "tt": "tatar",
    "haw": "hawaiian",
    "ln": "lingala",
    "ha": "hausa",
    "ba": "bashkir",
    "jw": "javanese",
    "su": "sundanese",
    "yue": "cantonese",
}

# 以下命令将使用medium模型转录音频文件中的语音:
#
# whisper audio.flac audio.mp3 audio.wav --model medium
# 默认设置(选择模型small)非常适合转录英语。要转录包含非英语语音的音频文件,您可以使用以下选项指定语言--language:
#
# whisper japanese.wav --language Japanese
# 添加--task translate会将演讲翻译成英语:
#
# whisper japanese.wav --language Japanese --task translate


# 其他语言转录为英语
# whisper "E:\voice\恋愛サーキュレーション_(Vocals)_(Vocals).wav" --language ja --task translate

# 这个任务是将audio_files内的声音文件进行字幕导出,以时间戳为单位存储到captions/目录里
audio_files = [r"E:\voice\恋愛サーキュレーション_(Vocals)_(Vocals).wav"]
model = whisper.load_model("small")
output_format = 'all'

writer_args = {
    "highlight_words": False,
    "max_line_count": None,
    "max_line_width": None,
    "max_words_per_line": None,
}

for audio_file in audio_files:
    now_timestamp = str(int(time.time()))
    save_path = f'captions/{now_timestamp}'
    if not os.path.exists(save_path):
        os.mkdir(save_path)

    # language可选
    # 中文zh,日语ja,英语en
    result = model.transcribe(audio_file, language='ja')

    writer = whisper.get_writer(output_format, save_path)
    writer(result, audio_file, **writer_args)

    print('done: ', audio_file )

到了这里,关于实战whisper:本地化部署通用语音识别模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hadoop本地化windows部署

    需求背景是java代码提交服务器测试周期流程太慢,需要一种能直接在windows本地部署的相关组件。分析项目现有大数据技术栈,包括hadoop、hive和spark(sparksql),存储和计算都依赖windows系统。期中hive保存在本地的hadoop上,spark提交在hadoop的yarn上。 · hadoop on windows · hive on windows

    2024年02月16日
    浏览(67)
  • 本地化部署大语言模型 ChatGLM

    ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优

    2023年04月20日
    浏览(59)
  • Spark的Windows本地化部署完整方案

    对于Spark,网上涉及到Windows平台搭建的资料不多。大多资料不全,而且很少说明注意事项,存在一定的挖坑行为。对于不是很熟悉spark环境搭建过程,但是又非常想在自己的电脑上搭建一个本地环境的小伙伴来说存在一定的绕路行为。本文借鉴了网上大部分的资料,在整理集

    2023年04月11日
    浏览(36)
  • 使用Unity Localization插件进行项目本地化实战详解

    在使用Unity开发游戏的过程中,本地化是必不可少的。网络上也有很多的本地化工具,本次我介绍的是Unity官方提供的Localization插件,大家可以在Package Manager进行安装 在Project Setting中找到Localization,(需要先创建这个Localization Setting文件)点击Locale Generator选择需要本地化的语

    2024年02月05日
    浏览(46)
  • 【AI工具】-Stable Diffusion本地化部署教程

    今天我们要介绍的是时下最流行的AI绘图软件Stable Diffusion,虽然Diffusion.ai已经开放api,但是长时间的商业化调用我们需要购买很多的金币。所以我们需要找一个平替的AI绘图平台,现在主流市场中AI绘图软件主要就是OpenAI的DALLE、midjourney以及今天要学习的Stable Diffusion,而前两

    2024年02月13日
    浏览(48)
  • Window本地化部署stable diffusion AI绘图

    从零开始,手把手教你Window本地化部署stable diffusion AI绘图 - 知乎 (zhihu.com) 解决MAC笔记本Stable Diffusion安装时报No matching distribution found for tb-nightly的问题 - 阿狸哥哥 - 博客园 (cnblogs.com)  修改启动脚本启动命令里加入了 --precision full --no-half precision full就是全精度,no half是不使用

    2024年02月11日
    浏览(44)
  • FastChat 本地化安装部署-拥有属于私人的ChatGPT

    写在前面:第一发稿把自己熬夜几天的一些经历写下来,希望能给AI爱好者一个前车之鉴,自从看到斯坦福-ALPACA项目就想着能否能否本地化部署一套AI CHAT,所以找了很多网站,都没有FastChat部署能很完整的写下来,所以有了本文: 1 前期准备:  N卡(24G以上显存),16G内存

    2024年02月02日
    浏览(56)
  • 部署本地化stable-diffusion遇到问题,求解

    (stable-diffusion-webui) C:Usersqinchstable-diffusion-webuiwebui-user.bat venv \\\"C:Usersqstable-diffusion-webuivenvScriptsPython.exe\\\" Python 3.10.6 | packaged by conda-forge | (main, Oct 24 2022, 16:02:16) [MSC v.1916 64 bit (AMD64)] Commit hash: 076d624a297532d6e4abebe5807fd7c7504d7a73 Traceback (most recent call last): File \\\"C:Usersqstable-diffu

    2024年02月03日
    浏览(58)
  • 自建类ChatGPT服务:本地化部署与远程访问教程

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月14日
    浏览(33)
  • 使用nextjs本地化部署AI大模型gemma

    博主是AI新手,如有不对还请评论区指教~ 这里介绍mac的部署方式,win也可以实现。 本案例使用到:ollama + nextjs + langchain.js + milvus 来实现知识库问答和聊天。 ollama: 本地运行模型服务 nextjs: 前端框架项目 langchain.js: 调用模型服务并对话 milvus: 向量数据库 开源代码:G

    2024年04月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包