Skip to content

Commit c0fb9bb

Browse files
committed
fix(speaker): 修正说话人模型下载 URL 与脚本编码
1 parent e67f763 commit c0fb9bb

3 files changed

Lines changed: 16 additions & 10 deletions

File tree

‎app/scripts/download-speaker-model.ps1‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 下载说话人 embedding 模型(wespeaker,v0.7.2 REQ-153 弱化版讲者分离依赖)
1+
# 下载说话人 embedding 模型(wespeaker,v0.7.2 REQ-153 弱化版讲者分离依赖)
22
#
33
# @ai-context: sherpa-onnx SpeakerEmbeddingExtractor 使用 wespeaker 转换模型
44
# (Apache-2.0 许可)——单文件 ONNX,约 20-70MB。下载到
@@ -8,19 +8,20 @@
88
# TLS 拦截环境走 Windows 证书库(与 ffmpeg 下载同模式)。
99
# @ai-context: 用法:powershell -ExecutionPolicy Bypass -File scripts/download-speaker-model.ps1
1010
#
11-
# 源:sherpa-onnx 模型仓库(wespeaker-zh:中文音色 embedding,sherpa-onnx 转换版)
11+
# 源:sherpa-onnx 模型仓库(wespeaker_zh_cnceleb_resnet34:中文音色 embedding,
12+
# sherpa-onnx 转换版,约 26.5MB;曾误用不存在的 wespeaker-zh.onnx 导致 404)
1213
$ErrorActionPreference = "Stop"
1314

1415
$targetDir = Join-Path $PSScriptRoot "..\src-tauri\models\speaker-embedding"
1516
$targetDir = [System.IO.Path]::GetFullPath($targetDir)
1617
$targetFile = Join-Path $targetDir "model.onnx"
1718

1819
# 镜像源(多源回退防单点失效;模型经 sherpa-onnx 官方仓库分发)
19-
# 1) GitHub release(k2-fsa/sherpa-onnx 模型清单中的 wespeaker-zh 包)
20-
# 2) HuggingFace 镜像(k2-fsa 组织仓库)
20+
# 1) GitHub release(k2-fsa/sherpa-onnx 模型清单中的 wespeaker_zh_cnceleb_resnet34 包)
21+
# 2) HuggingFace 镜像(csukuangfj/speaker-embedding-models 仓库)
2122
$mirrors = @(
22-
"https://github.com/k2-fsa/sherpa-onnx/releases/download/speaker-recongition-models/wespeaker-zh.onnx",
23-
"https://hf-mirror.com/csukuangfj/sherpa-onnx-speaker-embedding/resolve/main/wespeaker-zh.onnx"
23+
"https://github.com/k2-fsa/sherpa-onnx/releases/download/speaker-recongition-models/wespeaker_zh_cnceleb_resnet34.onnx",
24+
"https://hf-mirror.com/csukuangfj/speaker-embedding-models/resolve/main/wespeaker_zh_cnceleb_resnet34.onnx"
2425
)
2526

2627
if (Test-Path $targetFile) {

‎app/src-tauri/src/speaker_download.rs‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,14 @@ use tauri::Emitter;
1717
use crate::error::{AppError, Result};
1818

1919
/// 下载镜像源(与 scripts/download-speaker-model.ps1 同源;多源回退防单点失效)。
20+
///
21+
/// 上游文件名为 wespeaker_zh_cnceleb_resnet34.onnx(wespeaker 中文 CN-Celeb 模型,
22+
/// 约 26.5MB;曾误用不存在的 wespeaker-zh.onnx 导致双镜像 404):
23+
/// 1) GitHub release(sherpa-onnx 官方分发,speaker-recongition-models 为官方 tag 名)
24+
/// 2) HuggingFace 镜像(csukuangfj/speaker-embedding-models,注意非 sherpa-onnx-speaker-embedding)
2025
const MIRRORS: &[&str] = &[
21-
"https://github.com/k2-fsa/sherpa-onnx/releases/download/speaker-recongition-models/wespeaker-zh.onnx",
22-
"https://hf-mirror.com/csukuangfj/sherpa-onnx-speaker-embedding/resolve/main/wespeaker-zh.onnx",
26+
"https://github.com/k2-fsa/sherpa-onnx/releases/download/speaker-recongition-models/wespeaker_zh_cnceleb_resnet34.onnx",
27+
"https://hf-mirror.com/csukuangfj/speaker-embedding-models/resolve/main/wespeaker_zh_cnceleb_resnet34.onnx",
2328
];
2429
/// 下载超时(30 分钟;同 structure_models 口径)。
2530
const DOWNLOAD_TIMEOUT_SECS: u64 = 30 * 60;
@@ -191,7 +196,7 @@ fn download_one(
191196
let _ = app.emit(
192197
"speaker-model:download-progress",
193198
crate::model_downloader::DownloadProgress {
194-
file: "wespeaker-zh.onnx".to_string(),
199+
file: "wespeaker_zh_cnceleb_resnet34.onnx".to_string(),
195200
downloaded_bytes: downloaded,
196201
total_bytes: total,
197202
},

‎docs/product/classroom-assistant-guide.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252

5353
访谈、会议等多人视频的**讲者切换标记**——只标注"这里换人了",不识别身份。
5454

55-
- **启用方式(可选增强)**:运行 `app/scripts/download-speaker-model.ps1` 下载模型(wespeaker-zh,约 20-70MB,Apache-2.0 许可),重启应用
55+
- **启用方式(可选增强)**:运行 `app/scripts/download-speaker-model.ps1` 下载模型(wespeaker 中文模型 wespeaker_zh_cnceleb_resnet34,约 26.5MB,Apache-2.0 许可),重启应用
5656
- **使用场景**:访谈/会议档案的会话详情页会显示「👥 讲者切换 N 处」及时间点(按置信度排序标注)
5757
- **效果预期与局限(请务必了解)**:
5858
- **本地方案效果有限**:无云端说话人分离(如 pyannote 级服务)的精度——本地 wespeaker 音色向量 + 余弦阈值是"可用级"而非"准确级":

0 commit comments

Comments
 (0)