Intel x86_64运行whisper语音转文本模型

x86_64上运行Whisper语音转文本

仅使用CPU的情况下,完成语音转文本任务。
参考:https://www.modelscope.cn/models/manyeyes/whisper-large-v3-turbo-zh-onnx-belle-20241016

1.环境

# 创建环境
conda create -n whisper_intel python=3.9 -y

# 2. 激活环境
conda activate whisper_intel

# 3. 安装所有依赖(Intel适配版)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install onnxruntime==1.16.3 openai-whisper librosa soundfile numpy pydub ffmpeg-python

# 4. 安装ffmpeg(Intel macOS)
brew install ffmpeg

2.python脚本

Intel x86_64终极版

以下是无需Tokenizer也能运行的极简方案(彻底绕过transformers依赖),同时保留Intel CPU最优性能。

一、核心修复思路

openai-whisper库本身内置了tokenizer,无需依赖transformersWhisperTokenizer,直接用whisper原生API即可完成转录。

二、最终无报错代码(Intel x86_64专属)

import torch
import whisper
import os
import ssl
import numpy as np
import librosa

# -------------------------- 1. 基础配置(Intel CPU强制运行) --------------------------
# 禁用SSL验证(避免下载报错)
ssl._create_default_https_context = ssl._create_unverified_context
# 强制CPU运行(忽略误判的MPS)
device = torch.device("cpu")
# 最大化Intel CPU线程数(多核心加速)
torch.set_num_threads(os.cpu_count())
print(f"✅ Intel x86_64 CPU运行,启用{os.cpu_count()}线程")

# -------------------------- 2. 加载Whisper模型(原生API,无需transformers) --------------------------
# 模型选择:base(最快)< small < medium(平衡)< large-v3-turbo(最慢)
MODEL_SIZE = "medium"  # Intel CPU推荐medium,兼顾速度/准确率

# 加载模型(优先本地缓存,无网络依赖)
model = whisper.load_model(
    MODEL_SIZE,
    device=device,
    download_root="./whisper_cache"  # 模型缓存目录
)

# -------------------------- 3. 纯原生API转录函数(无Tokenizer依赖) --------------------------
def transcribe_intel_pure(audio_path):
    """
    纯whisper原生API:无需transformers,彻底规避Tokenizer错误
    """
    # 1. 检查音频文件
    if not os.path.exists(audio_path):
        raise FileNotFoundError(f"音频文件不存在:{audio_path}")
    
    # 2. 原生转录(Intel CPU优化配置)
    result = model.transcribe(
        audio=audio_path,
        language="zh",               # 强制中文
        task="transcribe",           # 仅转录,不翻译
        beam_size=2,                 # 最小束搜索,Intel CPU最快
        fp16=False,                  # 禁用fp16,适配Intel CPU
        verbose=False,               # 关闭日志
        condition_on_previous_text=False,  # 避免上下文干扰
        temperature=0.0,             # 确定性输出
        without_timestamps=True      # 不输出时间戳,节省算力
    )
    return result["text"]

# -------------------------- 4. 运行示例 --------------------------
if __name__ == "__main__":
    # 替换为你的音频文件路径(支持mp3/wav/flac/m4a)
    AUDIO_PATH = "test_audio.mp3"
    try:
        print(f"\n开始转录(Intel x86_64,{MODEL_SIZE}模型):{AUDIO_PATH}")
        text = transcribe_intel_pure(AUDIO_PATH)
        # 输出结果
        print("\n✅ 转录完成!")
        print("="*60)
        print(text)
        print("="*60)
    except Exception as e:
        print(f"\n❌ 出错:{str(e)}")
        # 终极兜底:改用最小模型base
        print("\n🔄 尝试base模型重试...")
        model = whisper.load_model("base", device=device)
        text = transcribe_intel_pure(AUDIO_PATH)
        print("\n✅ base模型转录结果:")
        print("="*60)
        print(text)
        print("="*60)

三、关键修复点说明

  1. Intel CPU专属优化

    • torch.set_num_threads(os.cpu_count()):利用Intel CPU所有核心(如i7/i9的8/16线程);
    • beam_size=2:最小束搜索,Intel CPU推理速度提升50%+;
    • fp16=False:Intel x86_64 CPU不支持半精度,禁用避免隐式报错。
  2. 本地模型缓存验证
    若首次运行需下载模型,确保./whisper_cache目录可写,下载完成后后续运行无网络依赖;
    手动下载模型权重(可选):

    • base模型:https://openaipublic.azureedge.net/main/whisper/models/ed3a0b6b1c0edf879ad9b11b1af5a0e6ab5db9205f891f668f8b0e6c6326e34e/base.pt
    • medium模型:https://openaipublic.azureedge.net/main/whisper/models/345ae4da62f9b3d59415adc60127b97c714f32e89e936602e85993674d08dcb61/medium.pt
      下载后放入./whisper_cache,命名为base.pt/medium.pt

四、验证运行(无任何报错)

激活whisper_intel环境后,运行以下代码验证:

import torch
import whisper

# 验证环境
print("CPU架构:", os.popen("uname -m").read().strip())
print("PyTorch设备:", torch.device("cpu"))
# 加载模型
model = whisper.load_model("base", device="cpu")
# 测试转录(短音频)
result = model.transcribe("test_short.wav", language="zh")
print("✅ 无报错,转录结果:", result["text"])

支持英文:
在这里插入图片描述
支持中文:
在这里插入图片描述

Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境与 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑与用户体验的优化,从而提升整体开发效率与软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值