10 篇文章带有标签 “whisper”

Speech To Speech:使用开源模型构建本地语音智能体

方法

架构

本仓库实现了一个语音到语音的级联管道,包含以下部分:

  1. 语音活动检测(VAD)
  2. 语音转文本(STT)
  3. 语言模型(LM)
  4. 文本转语音(TTS)

模块化

该管道提供了一种完全开放且模块化的方法,重点是利用 Hugging Face Hub 上 Transformers 库提供的模型。代码设计易于修改,我们已经支持特定设备和外部库的实现:

VAD

STT

LLM

TTS ChatTTS Pocket TTS - Kyutai Labs 提供的支持语音克隆的流式 TTS Kokoro-

SimulStreaming — 实时流式语音识别工具包

SimulStreaming 实现了 Whisper 模型的同步翻译和转录功能(在语音识别领域被称为流式传输)。SimulStreaming 采用了最先进的同步策略 AlignAtt,这使其具备极高的速度和效率。

安装

git clone https://github.com/ufal/SimulStreaming
cd SimulStreaming
pip install -r requirements.txt

从音频文件进行实时模拟

WhisperLiveKit - 实时语音识别

WhisperLiveKit 演示

实时、完全本地化的语音转文本,带说话人识别功能

WhisperLiveKit 架构

构建 WhisperLiveKit

运行 pytorch 容器 - CUDA (JetsonThor)

docker run -it \
    --ipc=host \
    --net=host \
    --runtime=nvidia \
    --name=whisperlivekit \
    -v ~/.cache:/root/.cache \
    -v /models:/models \
    nvcr.io/nvidia/pytorch:25.10-py3 \
    bash

生成证书

mkdir -p .cert && cd .cert

openssl req -x509 -newkey rsa:4096 \
  -keyout key.pem \
  -out cert.pem \
  -days 365 \
  -nodes \
  -subj "/C=CN/ST=ShanDong/L=JiNan/O=LNSoft/OU=LNSoft/CN=localhost/emailAddress=wjj@163.com"

参数解释:

  • -x509:生成自签名证书
  • -newkey rsa:4096:新建 4096 位 RSA 密钥
  • -keyout key.pem:输出私钥文件
  • -out cert.pem:输出证书文件
  • -days 365:证书有效期 365 天
  • -nodes:不加密私钥(即无需输入密码)
  • -subj:直接指定证书主题,跳过交互式输入

whisper.cpp 实战指南(Jetson Thor 平台)

编译 whisper.cpp

克隆仓库

git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp

编译 whisper.cpp

cmake -B build -DGGML_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES="110"
cmake --build build -j --config Release

下载模型

sh ./models/download-ggml-model.sh small
sh ./models/download-ggml-model.sh large-v3-turbo
  • tiny.en
  • tiny
  • base.en
  • base
  • small.en
  • small
  • medium.en
  • medium
  • large-v1
  • large-v2
  • large-v3
  • large-v3-turbo

运行 whisper-cli

./build/bin/whisper-cli -f samples/jfk.wav
./build/bin/whisper-cli -m /models/whisper.cpp/models/ggml-large-v3-turbo.bin -f samples/jfk.wav

whisper-server

vLLM:快速易用的 LLM 推理和服务库

大模型

在下载前,请先通过如下命令安装 ModelScope

pip install modelscope

ModelScope 下载默认存储到 ~/.cache/modelscope/hub(Linux/macOS)或 C:\Users<用户名>.cache\modelscope\hub(Windows)。--local_dir 参数可以指定下载目录。

多模态(Multi-modal)

modelscope download --model Qwen/Qwen2.5-VL-3B-Instruct --local_dir Qwen2.5-VL-3B-Instruct
modelscope download --model Qwen/Qwen2.5-VL-7B-Instruct --local_dir Qwen2.5-VL-7B-Instruct

转录(Transcriptions)

modelscope download --model openai-mirror/whisper-large-v3 --local_dir whisper-large-v3
modelscope download --model openai-mirror/whisper-large-v3-turbo --local_dir whisper-large-v3-turbo

MLX: An array framework for Apple silicon

MLX

统一内存:与 MLX 和其他框架的显着区别是统一内存模型。 MLX 中的数组位于共享内存中。 MLX 阵列上的操作可以在任何支持的设备类型上执行,而无需传输数据。

MLX Documentation

创建虚拟环境

mkdir ml-explore && cd ml-explore
git clone https://github.com/ml-explore/mlx
git clone https://github.com/ml-explore/mlx-examples

python -m venv env
source env/bin/activate

Phi-2

  • 安装依赖包
cd llms/phi2
pip install -r requirements.txt
  • 模型下载和转换

使用已经下载的模型

mkdir microsoft
ln -s /Users/junjian/HuggingFace/microsoft/phi-2 microsoft/phi-2

转换模型

python convert.py

这将生成 MLX 可以读取的 weights.npz 文件。

-rw-r--r--  1 junjian  staff   5.2G 12 20 20:36 weights.npz
  • 运行

Whisper 语音识别

Whisper

功能

  • 将音频转录成音频所使用的任何语言。
  • 将音频翻译并转录成英文。

文件上传目前限制为 25 MB,并且支持以下输入文件类型:mp3, mp4, mpeg, mpga, m4a, wav, webm.

语音内容

Mira Murati 是一位对人工智能技术充满热情的科技领袖,她的理念和影响对人工智能技术的发展和应用产生了深远的影响。

她认为人工智能技术应该是以人为本的,强调人工智能技术应该是一种能够服务于人类的工具,而不是取代人类的工具。

她指出,人工智能技术的最终目的是为人类服务,因此人工智能技术应该以人类的利益和需求为中心,以解决人类面临的实际问题。人工智能技术的应用需要深入了解人类社会的需要和价值,将其应用到真正有意义的领域中。

OpenAI Whisper

安装 OpenAI

!pip install -U openai

测试

语音识别

import openai
audio_file= open("data/audios/test.m4a", "rb")
transcript = openai.Audio.transcribe("whisper-1", audio_file)
print(transcript["text"])

Miramurati是一位对人工智能技术充满热情的科技领袖 他的

OpenAI API Documentation Speech to Text

开发文档

Speech to text

API reference Audio

查看音频文件信息

file

data/podcast_clip.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 64 kbps, 44.1 kHz, Stereo

ffprobe ffprobe -hide_banner data/podcast_clip.mp3 Input #0, mp3, from 'data/podcast_clip.mp3': Metadata: major_brand : M4A minor_version : 512 compatible_brands: M4A isomiso2 date : 2023-02-06 14:59 title : "Clip created on ListenNotes.com" encoder : Lavf58.76.100 Duration: 00:03:00.04, start: 0.025057, bitrate: 128 kb/s Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s Metadata: encoder : Lavc58.

在 MacBook Pro M2 Max 上测试 Whisper

准备音频文件

macOS 上打开 QuickTimePlayer

  1. [文件] -> [新建音频录制]
  2. 录制
  3. 朗读:荷兰发布了一份主题为“宣布即将对先进半导体制造设备采取的出口管制措施”的公告表示,鉴于技术的发展和地缘政治的背景,政府已经得出结论,有必要扩大现有的特定半导体制造设备的出口管制。
  4. 停止
  5. 保存(test.m4a)

m4a 转换 wav

ffmpeg -i test.m4a -ar 16000 -ac 1 -c:a pcm_s16le test.wav

OpenAI Whisper

创建虚拟环境

conda create --name whisper python
conda activate whisper

安装

pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git

wget https://raw.githubusercontent.com/openai/whisper/main/requirements.txt
pip install -r requirements.txt

测试 模型默认保存在 ~/.cache/whisper ls ~/.cache/whisper base.pt large-v2.