-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstt.html
More file actions
204 lines (181 loc) · 13.1 KB
/
stt.html
File metadata and controls
204 lines (181 loc) · 13.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>实时 STT 与模型选择 - 无界音流</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="sidebar">
<a href="welcome.html" class="sidebar-logo">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color: var(--primary-color);"><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><line x1="12" y1="19" x2="12" y2="22"></line></svg>
无界音流
</a>
<div class="sidebar-group">开始使用</div>
<ul>
<li><a href="welcome.html">什么是无界音流?</a></li>
<li><a href="onboarding.html">引导页配置向导</a></li>
</ul>
<div class="sidebar-group">核心功能</div>
<ul>
<li><a href="stt.html" class="active">实时 STT 与模型选择</a></li>
<li><a href="translation.html">实时翻译功能</a></li>
<li><a href="proofreading-summary.html">AI 纠错与智能总结</a></li>
<li><a href="tts-voice-cloning.html">语音合成与声音克隆</a></li>
<li><a href="sts.html">STS 同传工作台</a></li>
<li><a href="linglu.html">灵录 · 实时分叉树纪要</a></li>
</ul>
<div class="sidebar-group">附录</div>
<ul>
<li><a href="appendix.html">小白指南</a></li>
</ul>
<div style="margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--border-color);">
<a href="stt-en.html" style="display: flex; align-items: center; gap: 0.5rem;">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
English Version
</a>
</div>
</div>
<div class="main-content">
<div class="content-wrapper">
<h1>实时语音转文字 (STT) 与模型选择</h1>
<p>无界音流的核心功能是基于本地模型的实时语音转文字(STT)。它能够精准、快速地将您的语音转化为文字,并支持多种输出方式。</p>
<figure class="doc-image">
<img src="images/img2.png" alt="Mini Mode 悬浮字幕界面">
<figcaption>Mini Mode — 右下角悬浮实时字幕</figcaption>
</figure>
<h2>实时 STT 功能介绍</h2>
<p>无界音流支持 <strong>SenseVoice ONNX</strong> 与 <strong>FunASR</strong> 两条本地实时 STT 路径。两者都支持临时流式结果与句级最终结果,您说话时即可持续看到文字上屏。</p>
<div class="callout info">
<div class="callout-icon">ℹ️</div>
<div class="callout-content">
<p><strong>当前 STT 路径:</strong> 麦克风实时识别支持 <strong>SenseVoice ONNX</strong> 与 <strong>FunASR</strong>;新增的 <strong>native-stt</strong> 主要用于上传音频文件后的离线转写,支持 Whisper / SenseVoice 两种原生后端。</p>
</div>
</div>
<h3>输出方式</h3>
<p>在设置中,您可以选择不同的输出方式:</p>
<ul>
<li><strong>跟随光标注入(推荐)</strong>:边说边写,识别结果直接输入到您当前光标所在的位置。开启后,请先用鼠标点到你想输入的地方(如 Word、网页输入框),再开始说话。</li>
<li><strong>实时输出</strong>:在应用界面内实时显示识别结果。</li>
<li><strong>最终自动回车</strong>:在一段话讲完后,自动输出最终结果并换行。</li>
</ul>
<h2>如何开启实时 STT</h2>
<div class="steps">
<div class="step">
<div class="step-number">1</div>
<div class="step-content">
<h3>确认配置</h3>
<p>确保您已经正确配置了模型目录(见下文)。</p>
</div>
</div>
<div class="step">
<div class="step-number">2</div>
<div class="step-content">
<h3>开始录音</h3>
<p><strong>方式一</strong>:点击主界面上的 <strong>“开始录音”</strong> 按钮。<br>
<strong>方式二</strong>:在任何界面下,按下键盘上的 <strong>右侧 Alt 键 (<code>RightAlt</code>)</strong>。</p>
</div>
</div>
<div class="step">
<div class="step-number">3</div>
<div class="step-content">
<h3>结束录音</h3>
<p>开始说话吧!您会看到识别的文字实时显示出来。再次按下快捷键或点击停止按钮即可结束录音。</p>
</div>
</div>
</div>
<h2>选择与配置不同模型</h2>
<p>为了让语音识别功能正常工作,您需要进行简单的模型配置:</p>
<h3>选择后端并配置模型目录</h3>
<ol>
<li>打开应用主界面,进入 <strong>设置 (Settings)</strong>。</li>
<li>在 STT 后端中选择要使用的实时后端(<strong>ONNX</strong> 或 <strong>FunASR</strong>)。</li>
<li>在 <strong>模型目录</strong> 中选择对应后端的模型文件夹路径。</li>
</ol>
<h3>推荐模型下载(ModelScope)</h3>
<p>无界音流默认使用 SenseVoice 本地模型(ONNX)。推荐使用 ModelScope 下载(参考 <a href="https://www.modelscope.cn/docs/" target="_blank" rel="noopener noreferrer">ModelScope 文档</a>;小白安装指南见 <a href="appendix.html#appendix-modelscope">附录 A</a>):</p>
<pre><code>modelscope download --model iic/SenseVoiceSmall --local_dir ./SenseVoiceSmall</code></pre>
<p>下载完成后,将设置里的 <strong>模型目录</strong> 指向下载目录(例如 <code>./SenseVoiceSmall</code> 或 Windows 绝对路径)。</p>
<p>如果您选择 <strong>FunASR</strong> 后端,请下载 FunASR-Nano 模型,并将 <strong>模型目录</strong> 指向该目录:</p>
<pre><code>modelscope download --model FunAudioLLM/Fun-ASR-Nano-2512 --local_dir ./Fun-ASR-Nano-2512</code></pre>
<div class="callout warning">
<div class="callout-icon">⚠️</div>
<div class="callout-content">
<p><strong>注意:</strong> ONNX 后端请确保目录中包含 <code>model.onnx</code> 与 <code>tokens.json</code>;FunASR 后端请确保目录为完整的 <code>Fun-ASR-Nano-2512</code> 模型目录(例如包含 <code>model.pt</code>、<code>config.yaml</code>、tokenizer 相关文件)。</p>
</div>
</div>
<h3>说话人分离(Speaker Diarization)额外模型</h3>
<p>如果您希望实时识别时自动区分不同说话人,除了 STT 主模型外,还需要额外配置一组 <strong>sherpa-onnx</strong> 的说话人分离模型。它们与 SenseVoice / FunASR 是并行关系,不是二选一。</p>
<ul>
<li><strong>segmentation.onnx</strong>:负责把整段音频切分成不同说话人的时间片段。</li>
<li><strong>embedding.onnx</strong>:负责提取每个说话人的声纹向量,用于聚类与区分 <code>Speaker_1 / Speaker_2 / Speaker_3</code>。</li>
</ul>
<p>推荐把文件放到同一个目录,例如:</p>
<pre><code>F:\Projects\03.AIWhiteBoard\ai-whiteboard-next\voice\speaker-diarization\
segmentation.onnx
embedding.onnx</code></pre>
<p>然后在应用设置中配置:</p>
<ul>
<li><strong>说话人分段模型</strong>:选择 <code>segmentation.onnx</code> 或其所在目录</li>
<li><strong>声纹嵌入模型</strong>:选择 <code>embedding.onnx</code> 或其所在目录</li>
</ul>
<p>推荐下载来源:</p>
<ul>
<li>分段模型:<code>sherpa-onnx-pyannote-segmentation-3-0</code></li>
<li>嵌入模型:<code>3dspeaker_speech_eres2net_base_sv_zh-cn_3dspeaker_16k.onnx</code></li>
<li>官方说明:<a href="https://k2-fsa.github.io/sherpa/onnx/speaker-diarization/models.html" target="_blank" rel="noopener noreferrer">sherpa-onnx speaker diarization models</a></li>
</ul>
<div class="callout info">
<div class="callout-icon">ℹ️</div>
<div class="callout-content">
<p><strong>补充说明:</strong> <code>SenseVoiceSmall</code> 用于实时识别、情感/语言/事件标签;<code>Fun-ASR-Nano-2512</code> 用于 FunASR 实时识别。它们都不能直接替代 <code>segmentation.onnx</code> 与 <code>embedding.onnx</code>。</p>
</div>
</div>
<h3>高级 STT 设置</h3>
<ul>
<li><strong>发送帧间隔(毫秒)</strong>:决定语音识别的实时性。建议设置为 <code>20ms</code>(接近实时)。数值越小,文字上屏越快,但会增加电脑性能消耗。</li>
<li><strong>识别语言</strong>:强制指定识别的语言(如中文、英文、日文等)。推荐选择 <strong>自动 (auto)</strong>,让 AI 自动判断。</li>
<li><strong>TextNorm</strong>:文本标准化处理。推荐保持 <strong>auto(默认)</strong>。</li>
</ul>
<h2>native-stt 离线文件转写</h2>
<p>升级后的 <strong>native-stt</strong> 提供了一条与实时麦克风 STT 并行的离线转写路径。它适合较长录音、历史音频、会议回放和本地批量转写场景。</p>
<figure class="doc-image">
<img src="images/native-stt.png" alt="native-stt 配置界面">
<figcaption>native-stt 配置示意:选择后端、模型文件与待转写音频</figcaption>
</figure>
<h3>适用场景与特点</h3>
<ul>
<li><strong>仅用于音频文件转写</strong>:该路径用于上传/本地音频文件,不替代实时麦克风识别;实时录音请使用 ONNX 或 FunASR 实时后端。</li>
<li><strong>支持原生后端</strong>:可切换 <code>Whisper</code> 或 <code>SenseVoice</code>,按模型类型选择最适合的转写引擎。</li>
<li><strong>长音频更稳妥</strong>:应用会按片段处理较长文件,并把结果持续追加到“原始结果”区域。</li>
<li><strong>可中途中止</strong>:转写过程中可以点击停止按钮终止当前任务。</li>
<li><strong>自动优先 CUDA</strong>:系统具备可用 CUDA 环境时,native-stt 会优先尝试 GPU 加速。</li>
</ul>
<h3>如何配置 native-stt</h3>
<ol>
<li>在主界面的 STT 面板中,将后端切换为 <strong>Whisper</strong> 或 <strong>SenseVoice</strong>。</li>
<li>选择对应的 <strong>模型文件</strong> 或模型路径。</li>
<li>再选择需要转写的 <strong>音频文件</strong>。</li>
<li>点击 <strong>转写文件</strong>,结果会逐步写入“原始结果”区域。</li>
</ol>
<h3>模型与格式说明</h3>
<ul>
<li><strong>Whisper</strong>:适合使用 <code>.bin</code>、<code>.ggml</code>、<code>.gguf</code> 模型文件。</li>
<li><strong>SenseVoice</strong>:适合使用 <code>.bin</code> 或 <code>.gguf</code> 模型文件。</li>
<li><strong>语言建议</strong>:大多数情况下保持 <code>auto</code> 即可;如需提高稳定性,可手动指定语言。</li>
</ul>
<div class="callout warning">
<div class="callout-icon">⚠️</div>
<div class="callout-content">
<p><strong>注意:</strong> native-stt 当前定位为离线文件转写能力,不用于实时麦克风字幕。如果您希望边说边显示,请使用 ONNX 或 FunASR 的实时 STT 路径。</p>
</div>
</div>
<div class="doc-copyright">
<p>Copyright(c) ZimaBlueAI</p>
<p>齐码蓝智能(大理市 )有限责任公司</p>
</div>
</div>
</div>
</body>
</html>