如何下载、安装whisper、faster_whisper?

1、模型种类

whisper:有很多模型:tiny、base、small、medium、large等

faster_whisper:模型种类与whisper类似

2、模型安装

特别注意:whisper和faster_whisper中的模型,有两种获得方式。

①在网址:https://github.com/openai/whisper上有提示:pip install -U openai-whisper,下载结果为  .pt文件。在网址:https://github.com/SYSTRAN/faster-whisper上有提示:pip install faster-whisper,下载结果为.pt文件

②在网址:https://huggingface.co/,进行搜索 whisper,根据提示,可以下载 large-v3和large-v3-turbo,下载结果为文件,与①不同(特别注意)

3.模型运行

①按照①方法下载的模型:运行代码参考网址:https://github.com/openai/whisperhttps://github.com/openai/whisper ,示例如下:

import whisper

model = whisper.load_model("turbo")

# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)

# make log-Mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio, n_mels=model.dims.n_mels).to(model.device)

# detect the spoken language
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")

# decode the audio
options = whisper.DecodingOptions()
result = whisper.decode(model, mel, options)

# print the recognized text
print(result.text)

以上代码,要求# load audio and pad/trim it to fit 30 seconds,提示:whisper模型要求一句话进行识别,如果音频时间太短,可能识别结果不准确,具体请自行尝试。

②按照①方法下载的模型:运行代码参考网址:https://github.com/SYSTRAN/faster-whisperhttps://github.com/SYSTRAN/faster-whisper ,示例如下:

from faster_whisper import WhisperModel

model_size = "large-v3"

# Run on GPU with FP16
model = WhisperModel(model_size, device="cuda", compute_type="float16")

# or run on GPU with INT8
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# or run on CPU with INT8
# model = WhisperModel(model_size, device="cpu", compute_type="int8")

segments, info = model.transcribe("audio.mp3", beam_size=5)

print("Detected language '%s' with probability %f" % (info.language, info.language_probability))

for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

以上代码,model=WhisperModel(...),可以指定cuda编号,以便合理利用资源。

③按照②方法下载的模型,可以参考vllm网址:https://github.com/vllm-project/vllmhttps://github.com/vllm-project/vllm

vllm框架中的whisper模型和faster_whisper模型一定是来自huggingface。

关于vllm安装踩坑问题,以后发布。

Read more

SpringBoot深度解析i18n国际化:配置文件+数据库动态实现(简/繁/英)

前言 在全球化业务场景下,系统适配多语言已成为标配需求。SpringBoot作为主流的Java开发框架,提供了完善的国际化(i18n,internationalization的缩写,因i和n之间有18个字母得名)解决方案。本文将从实战角度出发,完整讲解两种企业级i18n实现方案:基于配置文件的静态实现(适配简体中文、繁体中文、英文)和基于数据库的动态实现(支持运行时修改语言配置),同时覆盖校验注解国际化、性能优化、常见问题排查等核心要点,所有代码均可直接落地到生产项目。 一、国际化基础认知 1.1 核心概念 i18n的核心目标是让系统在不修改代码的前提下,通过配置适配不同语言和地区的使用习惯。SpringBoot中实现i18n的核心依赖是: * MessageSource:消息源接口,负责加载和解析多语言消息,默认实现为ResourceBundleMessageSource(基于配置文件)。 * Accept-Language:语言地区标识,格式为语言代码_国家/地区代码,如: * 简体中文:zh_CN * 繁体中文:zh_TW * 英文(美国):e

By Ne0inhk
【2025版】Spring Boot面试题

【2025版】Spring Boot面试题

文章目录 * 1. Spring, Spring MVC, SpringBoot是什么关系? * 2. 谈一谈对Spring IoC的理解 * 3. @Component 和 @Bean 的区别? * 4. @Autowired 和 @Resource 的区别? * 5. 注入Bean的方法有哪些? * 6. 为什么Spring 官方推荐构造函数注入? * 7. Bean 的作用域有哪些? * 8. Bean 是线程安全的吗? * 9. Bean 的生命周期了解吗? * 10. 如何解决 Spring 中的循环依赖问题? * 11. @Lazy能解决循环依赖问题吗? * 12. Spring 动态代理默认用哪一种? * 13. Spring中拦截器和过滤器的区别? * 14. Spring Boot的配置优先级 * 15. Spring Boot

By Ne0inhk
风险不是补出来的,是“控出来”的:金仓 SQL 防火墙的体系化实践

风险不是补出来的,是“控出来”的:金仓 SQL 防火墙的体系化实践

风险不是补出来的,是“控出来”的:金仓 SQL 防火墙的体系化实践 在企业级系统中,数据库从来不是单纯的“存储组件”,而是承载核心资产的关键基础设施。一旦发生数据泄露或破坏,带来的不仅是技术问题,更是业务、合规乃至声誉层面的连锁反应。而在众多数据库安全威胁中,SQL 注入始终是最隐蔽、最顽固的一类。 问题在于:SQL 注入很难被彻底“消灭”。 你可以降低风险,但很难保证“绝对不存在”。 这正是数据库内生安全能力开始被重视的原因。本文结合 KingbaseES SQL 防火墙,从原理、机制到落地实践,系统性分析其如何将数据库从“被动执行者”升级为“主动防御者”。 在数字化基础设施不断演进的今天,数据库早已从单纯的数据存储引擎,演变为企业核心业务系统的“中枢神经”。无论是政务系统、金融交易平台,还是互联网应用与工业系统,几乎所有关键业务都建立在数据库之上运行。然而,伴随数据价值的持续攀升,针对数据库的攻击手段也在不断升级,其中尤以 SQL

By Ne0inhk
MySQL 表约束核心指南:从基础约束到外键关联(含实战案例)

MySQL 表约束核心指南:从基础约束到外键关联(含实战案例)

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 表约束核心概念 * 二. 基础约束:NULL/NOT NULL 与 DEFAULT * 2.1 空属性约束(NULL/NOT NULL) * 2.2 默认值约束(DEFAULT) * 2.3 列描述(COMMENT) * 2.4 零填充约束(ZEROFILL) * 三. 核心约束:主键、自增长与唯一键 * 3.1 主键约束(PRIMARY KEY) * 3.

By Ne0inhk