Skip to content

Instantly share code, notes, and snippets.

@BHznJNs
Created July 24, 2025 09:55
Show Gist options
  • Select an option

  • Save BHznJNs/766cef99f190ceb777d585bc6e758618 to your computer and use it in GitHub Desktop.

Select an option

Save BHznJNs/766cef99f190ceb777d585bc6e758618 to your computer and use it in GitHub Desktop.
Run SenseVoice model locally with sherpa-onnx
import sherpa_onnx
import soundfile as sf
import numpy as np
from modelscope import snapshot_download
sensevoice_model_id = "WEAAEW/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17"
model_dir = snapshot_download(sensevoice_model_id, local_dir="./sensevoice")
recognizer = sherpa_onnx.OfflineRecognizer.from_sense_voice(
model=f"{model_dir}/model.onnx",
tokens=f"{model_dir}/tokens.txt",
use_itn=True,
debug=False,
)
def load_audio(filename: str):
"""加载音频文件并返回 samples 和采样率"""
data, sample_rate = sf.read(
filename,
always_2d=True,
dtype="float32",
)
data = data[:, 0] # 使用第一个声道
samples = np.ascontiguousarray(data)
return sample_rate, samples
sample_rate, samples = load_audio("./Recording.wav")
stream = recognizer.create_stream()
stream.accept_waveform(sample_rate, samples)
recognizer.decode_stream(stream)
result = stream.result
print(result.text)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment