工作清單

05VoiceAgent理论基础-实时语音识别ASR原理

逐字稿文字預覽

大家好,今天我們給大家講解Voice Agent的這個適時語音識別ASR的一個原理。
我們從頭到尾把它捋一遍,要知道它背後的原理是什麼。當然具體的這個技術實現,肯定是由對應的這個供應商已經實現了。但是我們了解原理的話,對我們理解Voice Agent是有幫助的。
好
那么ASR呢
其实我们一般会说ICTT
就是语音转文字
但是更专业的说法可以说ASR
并且在这个voice agent里面
一定要用
实施语音
实施语音的转换
你整段语音的转文本
对于这个voice agent意义不大
因为你无法做这些
打断了这个处理
好
那么他不是听懂了整句在翻译
而是把音频声音切成一帧帧的逐帧
拆这个什么音再把它串成
这个再串成这个字
是这么来的
然后第一步把声音变成模型能吃的东西
比如说声波到一串数字
每秒采集16000个点
气压变化变成一串整数
第二部分呢
就是切成一帧一帧的
每帧20秒
这么短的时间内
声音特征基本不变
那就是20毫秒
20毫秒切变成一帧
所以我们说之前说了一个40毫秒
其实就是两帧嘛
第三个是每帧算出频谱指纹
不看波形
看频率成分
人耳听的就是这个
其实这个是声学的里面
最基本的原理
这个呢
其实
我们不用过去顺究
我们简单了解就行了
为本要转成平谱了
同一个R
你说和我说
大声说和小声说
波形完全不同
但平谱成分分布是相似的
换成平谱模型
要认的东西就稳定多了
说白就说
你说R
我说R
是吧
那两个声音大小
可能是不同的
波形是不同的
所以用通过波形是不行的
要把它换成平谱
模型才能更好的识别
好
第二步就是升学模型逐针猜
这一针是什么音
比如说你好
对吧
为例
那模型对每一针独立给出一个猜测
他不知道这个字
只知道这一针最像什么
那每一针猜测
比如理
这个是空格
空的空白的
理理理
空白好好好
空白
灰色是空白的符号
意思是这一针没有内容输出
有了它
模型就不用纠结
一个音到底跨几帧
说了长就多图几帧
同样字交给下一步收拾
所以说我们可以看到
可能是这么个情况
这个是每一帧的情况
每一帧
每一帧我们说了20毫秒
第三步就解码
合并重复去掉空白
比如说我们可以看到
有理理理好好好
那肯定是合并成理好就行了
然后再把这些空白的地方
再把它去掉就变成理好
其实就是用户就说了个理好
好好好
你好
那么连续的这个
空白的哈
这段没人说话
所以很多流色ASR
根本不用单独跑一个VED
直接读升学模型空白输出就行
判断依据识别
本身天然一致
那你说白了就是有
你这个针里面有这么多空白的符号
那肯定就是你没说话
对吧
那这个就相当于做了一个VED的判断
就是你没说话
这就是断句原理那张图里第二步的最常见的实验方式之一
空白符嘛
那不就断句了吗
我就认为你没说话
比如说你这里面
如果你这空白的地方
并且时间呢
这个比如说
这个超过300毫秒了
那我们认为
你这句话说完了
这个意思
那么为什么牛市的识别会边缩边改呢
对吧
为什么他会边说边改
比如他听到0.3秒
离
听到0.7秒
离好
听到1.2秒
离好吗
那么在这个时候
他静音不是很久
也就是说
他是低于300毫秒的
其实这句话就没说完
离好这时候也没说完
但是到这个时候
可能后面的静音
已经超过300毫秒了
就final了
就静音够久定稿了
我们来看右边这段话
我们看右边的解释
流失模型只看过去看不到未来
比如像理解的模型whisper
拿到整段音频
可以前后互相印证
牛4必须在
这个前后互相印证是什么意思
就是他有一段完整的音频
他已经把一个逐字稿全部练完了
那你当然知道前后有什么
语言他会把它改掉的
但牛4必须在
我想聊聊乒乓的时候就输出
而后面是球还是球拍
根本没有发生
他也不知道你是聊乒乓球
还是聊乒乓球猪
还是聊乒乓球技术
还是聊乒乓球拍
对吧
那这个牛市的就需要解决这种问题
所以他边拆边改,改的过程呢
就是这个
就是我们前面说的这两段对吧
就是in term
那么确定不了的就是final的
那么前面这一部分他就逐字就是在屏幕上了
是吧
用户才能看到他的听
那我们经常看到这个
比如说你在用豆包的经常就说你
你问他问题干什么
就是他
或者说别的这种
语音的这种工具
你会发现他的字在逐步在出是吧
就是这个意思
他在编出还帮你改
中文尤其是没有词的编辑
同音字扎堆
对吧
他同音字特别多
全靠上下文区分
而上下文恰恰是流是最缺的部分
这也就是中文识别了
既然用阿里云
而不是用deepgram
那么deepgram
他是对英文字是特别好
包括Yenion Live这些
所以你中文的话你还是用阿里云、火山、腾讯
像这些是吧
他肯定中文制作的好一些
好
那我们上面讲了学会之后怎么用
推理
那他是怎么学会的
他为什么能识别呢
为什么他能识别出来了
背后的原理是什么
第一个就是为他配好的
对的数据
训练数据标注预料
有东北画,对吧,天津画
等等,比如说上海画
那你有这么多这个
方言,普通话
等等这些画
你录给他
他去训练这个数据
这个是和其他的
这个模型是一样的,你得有训练数据
让他自己找规律,然后就训练嘛,就推理嘛,这个是为数据嘛,然后这个就是推理
反向
反向传播掉参数
反复对照这几百万条
没有人告诉他
你这个音长什么样
规律是他自己从数据里总结出来的
学出来是两样东西
升线模型
认这一针是什么音
语言模型
同音字里挑哪个更适合上下文
说白了
就你的这个模型
给他的数据越多
训练的越
找的规律越好
对吧
你的参数越多
那当然你的这个识别
可能越准
那么学会了就可以放话
对吧
和推理
那这一段
从没听过的录音
换一个没听过的人来说
他也认得出
这就是上边言那个逐针猜的
用的模型
逐针猜嘛
对吧
他要逐针猜
比如说你说
我要去打乒乓
他会猜出乒乓球
乒乓球球拍 乒乓球桌 乒乓球技术
这属于这个
我们说这个ASR用的对应的
背后用的这种声学模型
对吧
或者说这个语言模型
它就具备了这个能力了
它也能猜
能猜你
说什么
就像教小孩真智 你不会给他
讲字形
学理论 就是反复指的说
这是礼
是吧
礼子多了
他以后就会见过了字体语言的粗
模型学的不是规则是见的多
所以训练时
见的少的东西
专业术语人民方言他有容易出错
这也是供应商为什么提供热词表
所以说就算你的中文呢
当然我们用中文的这种
模型更好对吧
英文就用英文的模型
是吧
你别的语言当然也是
这个所以说是有区别的
这么你
你在你的这个voice in的这个项目的时候
你在挑选来一家供应商的时候
那肯定是根据你的业务场景来的
你是什么语言为主
比如说你是粤语的
那当然你要考虑他这个模型对粤语的识别的怎么样
识别好你才用它
而不是说随便拿一个provider
就行不行了
然后我们理解了原理之后
你对去挑选你的ASR的对应的服务
甚至你在做本地的
比如我们有欧拉玛去接本地的模型
你挑哪个模型
那都是有帮助的
好那么关于语音识别的原理的
这个分享了
我们就讲到这里
谢谢大家观看

來源:transcript.txt

本次執行流程與問題處理

  1. 下達指令

    指令:videonote https://b23.tv/cgCr85K --language zh --auto-source-subtitles

    來源:https://b23.tv/cgCr85K

    辨識語言:zh | 參數:--language zh --auto-source-subtitles

  2. 預期流程

    依指令產生的處理順序:

    1. 自動字幕優先,Whisper 作為備援
    2. 來源選擇與品質檢查
    3. 文字校正與句子單元
    4. 筆記與發布
    5. 公開網頁發布
  3. 1. 下載與語音辨識

    工具:videonote-transcribe-url(主辨識管線:下載、Whisper 辨識與選稿)

    處理:下載音訊、以 Whisper 辨識並選出最佳逐字稿

    產出:yt_dlp_meta.json(影片元資料)、audio_16k_mono.wav(16kHz 單聲道音訊)、transcript.whisper.json(Whisper 辨識結果)、transcript.json(正式逐字稿)、transcript_selection_report.json(來源選擇報告)

    耗時:33.7 秒

    關係:依序執行

    結果:完成

  4. 2. 全文快速校讀

    工具:videonote_rapid_transcript_review.py

    處理:先速讀完整逐字稿,再修正高可信突兀詞句並列出待確認項目

    產出:rapid_transcript_review_report.json(產出檔案)

    耗時:41.2 秒

    關係:依序執行

    結果:完成

  5. 3. 建立句子單元

    工具:videonote-build-sentence-units

    處理:將逐字稿切成帶時間軸的句子單元

    產出:sentence_units.json(句子單元)

    耗時:0.2 秒

    關係:依序執行

    結果:完成

  6. 4. 句子密度平衡

    工具:videonote_balance_sentence_units.py

    處理:平衡句子長度與密度

    產出:sentence_units.json(句子單元)

    耗時:0.3 秒

    關係:依序執行

    結果:完成

  7. 5. 時間軸稽核

    工具:videonote_timeline_audit.py

    處理:檢查時間軸與音訊對齊

    產出:timeline_audit_report.json(時間軸稽核)

    耗時:0.3 秒

    關係:依序執行

    結果:完成

  8. 6. 品質檢查

    工具:videonote_controlled_quality.py(檢查時間軸與品質)

    處理:檢查語言、時間軸與可讀性品質

    產出:controlled_quality_report.json(品質報告)、language_sanity_report.json(語言檢查)

    耗時:0.3 秒

    關係:依序執行

    結果:完成

  9. 7. 播放時間軸回填

    工具:videonote_rebase_display_timeline.py

    處理:將網頁播放時間軸回填為校正字幕時間

    產出:display_timeline_rebase_report.json(時間軸回填報告)

    耗時:0.4 秒

    關係:依序執行

    結果:完成

  10. 8. 逐字稿交叉檢查

    工具:videonote_cross_check_transcript.py

    處理:交叉檢查逐字稿與來源字幕

    產出:transcript_crosscheck_report.json(交叉檢查)

    耗時:0.4 秒

    關係:依序執行

    結果:完成

  11. 9. 來源句整理

    工具:videonote_prepare_source_entries.py

    處理:整理來源句子供時間軸與頁面使用

    產出:sentence_units.json(句子單元)

    耗時:0.4 秒

    關係:依序執行

    結果:完成

  12. 10. 生成筆記摘要

    工具:videonote-generate-note(生成筆記摘要)

    處理:生成筆記摘要與重點

    產出:note.md(筆記 Markdown)、note.html(筆記 HTML)

    耗時:114.2 秒

    關係:依序執行

    結果:完成

  13. 11. 建立筆記頁面

    工具:videonote-render-html(產生筆記 HTML)

    處理:產生可閱讀的筆記 HTML 頁面

    產出:note.html(筆記 HTML)

    耗時:0.3 秒

    關係:依序執行

    結果:完成

  14. 12. 發布公開頁面

    工具:videonote-publish(發布公開頁面)

    處理:發布到公開網站與每日列表

    產出:公開筆記網址、result.json(管線結果)

    耗時:0.4 秒

    關係:依序執行

    結果:完成

手動來源字幕

自動來源字幕

Whisper 字幕

Qwen 字幕

Parakeet 字幕

MOSS 字幕

聲學時間證據(PyAnnote / WhisperX)

校正前後逐字稿

目前待解決問題與初步改善方向

進一步精進字幕與筆記
使用 Workbench 上傳校正字幕、中文參考稿或回饋 SRT,重新產生雙語與學習單元。
開啟 Workbench