想象你是一家热闹餐厅的金牌服务员小雅。今晚来了八位客人,七嘴八舌地聊了两个小时:程序员报技术风险、产品经理抢上线时间、两位外国客户用英文插话,中途隔壁桌还碰倒了红酒。散场时,所有人都看着你——你能把这一桌混乱变成一份“谁说了什么、决定了什么、谁来做什么”的清晰纪要吗? 这就是Notta在做的事。它不是一支“录音笔”,而是一位训练有素的AI服务员:先竖起耳朵听清每句话(ASR语音识别),再分辨哪句出自哪位客人(说话人分离),把两小时闲谈浓缩成几行要点(智能摘要),遇到外语客人自动切换语种(多语言支持),散场后还把“张总拉群、李工周五发版”整理成待办派发出去(Agent化流水线)。整个过程边吃边记(实时转写),而且严守保密协议(隐私合规)。这篇文章,就从这桌“会议饭局”讲起,一步步拆解Notta背后的技术选型与产品设计。

岗位关联

掌握语音转写产品的ASR选型、说话人分离、摘要与Agent化流水线,你就能独立设计会议效率类AI应用,并具备为真实业务做技术选型的判断力——这是AI应用开发者的核心落地技能之一。

目录
  1. 可视化演示
  2. ASR引擎选型:挑一双好耳朵
  3. 说话人分离:认出谁在开口
  4. 智能摘要提取:把流水账变成菜单
  5. 多语言支持:国际饭局的翻译官
  6. Agent化流水线:会自己办事的秘书
  7. 产品横向对比:三家餐厅的金牌服务员
  8. 隐私合规防护:签了保密协议的服务员
  9. 实时转写体验:边吃边记的同步感
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示Notta从语音输入到ASR转写、说话人分离、摘要提取的完整AI会议记录流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

ASR语音转写流程 粉色音频波形经ASR引擎识别后转为可编辑文字,红色进度标记实时转写位置 Audio → ASR → Text 实时转写依赖低延迟流式识别引擎

ASR引擎选型:挑一双好耳朵

饭局刚开局,小雅就知道今晚最大的挑战是“听得清”:八个人同时开口、玻璃杯碰撞、空调轰鸣。耳朵不行,后面记什么都是错的。所以她挑选自己的“耳朵”极其挑剔——这双耳朵就是语音识别领域常说的ASR引擎(Automatic Speech Recognition,自动语音识别)。它不是靠一只“真耳朵”在物理上收集声音,而是靠大量数据训练出来的程序模型。

ASR要做的事很朴素:给定一段音频信号 X,猜出最可能的文字 W。这背后是语音识别最经典的贝叶斯公式。它把“猜文本”拆成两件事相乘:先问“这句发音有多像这句话”(声学模型),再问“这句话有多像人话”(语言模型),两者都高,才敢下结论。

所以在做ASR选型时,Notta会像面试服务员一样考察三件事:第一,声学模型的“耳力”——在噪声、口音干扰下还能不能听准;第二,语言模型的“语感”——懂不懂"OKR"“灰度发布”这些开会黑话;第三,是否方便做领域微调,用真实会议数据把通用引擎改造成“会议专家”。小雅之所以能被录用,正是因为店长让她在嘈杂火锅店试听了一晚带口音的点菜,她全听清了——ASR选型就是这趟入职面试,耳朵不行,一切免谈。

W∗=arg⁡max⁡WP(W∣X)=arg⁡max⁡WP(X∣W)×P(W)W^* = \mathop{\arg\max}_{W} P(W \mid X) = \mathop{\arg\max}_{W} P(X \mid W) \times P(W)
一句话理解:语音识别就是“发音像不像”和“语法通不通”各打一个分,乘起来取最高分。
  1. W\*最终选出的文本结果,也就是客人说的那句话。
    W∗W^*
  2. argmax遍历所有候选文本,挑出得分最高的那个。
    arg⁡max⁡W\mathop{\arg\max}_{W}
  3. P(X | W)声学模型。给定文本 W,这段声音的发音匹配度有多高。
    P(X∣W)P(X \mid W)
  4. P(W)语言模型。这句话符合自然语言习惯的概率。
    P(W)P(W)

说话人分离:认出谁在开口

小雅真正让人称奇的,是分得清“哪句话是谁说的”。程序员在报风险,产品经理想插话,老板一拍桌子定了结论——她都能在笔记本上标清楚。客人并没有自我介绍,她靠的是“听声辨人”:每个人的嗓音像指纹一样独特,这就是声纹特征。技术上,系统先把音频切成小段,每段用神经网络提取成一个声纹向量(一串数字),然后比较两段声音的向量有多“贴近”。

比较两个向量最常用的方法叫余弦相似度:把两个向量看作高维空间里的箭头,看它们方向是否一致。方向越一致,相似度越接近 1,说明大概率是同一个人的声音;方向差得越远,越像两个人。所有片段两两算完相似度后,再用聚类算法把互相像的片段归成一组,输出“说话人1、说话人2”,而不是直接喊出“张三、李四”。

回扣到饭局:小雅从不喊客人名字,只会在本子上写“A桌格子衫男士说……”“A桌长发女士说……”。说话人分离也一样,它做的不是人脸识别式的“认人”,而是“把声音分堆”。之后用户手动把“说话人1”改成“王总”,或通过通讯录匹配补上名字。但正因为分了堆,纪要才有了“谁负责什么”的上下文——这是会议记录AI化最关键的第一步。

sim⁡(u,v)=u⋅v∥u∥×∥v∥\operatorname{sim}(u, v) = \frac{u \cdot v}{\lVert u \rVert \times \lVert v \rVert}
一句话理解:两个声音向量越“同向”,越像同一个人;聚类就是把同向的声音归堆。
  1. u, v两个语音片段的声纹向量,相当于声音的“指纹编码”。
    u,vu, v
  2. u · v向量逐位相乘再求和,衡量两个“箭头”的合拍程度。
    u⋅vu \cdot v
  3. ||u|| × ||v||两个向量的长度相乘,用于归一化,让相似度只看方向不看音量大小。
    ∥u∥×∥v∥\lVert u \rVert \times \lVert v \rVert
  4. sim相似度得分,越接近 1 越像同一人,越接近 -1 越不像。
    sim⁡(u,v)\operatorname{sim}(u, v)

智能摘要提取:把流水账变成菜单

客人聊了两小时,小雅不会把每句话都写下来。真写下来那叫会议录音稿,没人愿意读。她的本事是“复述重点”:把一桌散乱的聊天浓缩成“三道招牌菜+两件待办”。这就是摘要提取。Notta的做法是抽取式与生成式结合——先用算法给每个句子打重要度分,抽出最关键的几句,再用大模型把这些句子改写成通顺简洁的纪要,同时额外识别“谁要做什么”的待办。

打分的经典算法叫TextRank,思路很像社交网络里的“人脉评分”:一个句子如果和很多重要句子“观点相近”,它自己也很重要。句子之间的相似度构成一张网,分数在网络里反复传播,直到稳定。公式里的阻尼系数 d 控制“随大流”的程度,通常取 0.85,意思是每句话 85% 的分数来自邻居的推荐,15% 是保底分。

回到饭局:小雅最后端给客人的不是两小时的录音稿,而是一页纸——上面写着“一致同意下周一上线;李工负责写发布清单;王总对上线风险做了预案”。摘要的意义就在于此:把会议从“时间黑洞”变成“可执行的结论”。这也是为什么Notta的纪要会细分成“讨论要点”“结论”“待办”三个区块,让读纪要的人十秒钟就能接手全部信息。

Score(si)=(1−d)+d×∑sj∈Ne(si)Score(sj)∣Ne(sj)∣\mathrm{Score}(s_i) = (1 - d) + d \times \sum_{s_j \in \mathrm{Ne}(s_i)} \frac{\mathrm{Score}(s_j)}{|\mathrm{Ne}(s_j)|}
一句话理解:每句话的重要性由“和它相似的句子有多重要”决定,像朋友圈里被大佬转发后自己也会变火。
  1. s_i正在被打分的句子,相当于饭局里的某一句发言。
    sis_i
  2. Ne(s_i)与 s_i 语义相近的邻居句子集合,即“和这句话观点相似的人”。
    Ne(si)\mathrm{Ne}(s_i)
  3. 1 - d保底分数,d 通常取 0.85,避免孤立句子的分数掉到零。
    1−d1 - d
  4. Σ 与分母每个邻居把它的分数平均分给所有朋友,s_i 收到众筹的分值。
    ∑sj∈Ne(si)Score(sj)∣Ne(sj)∣\sum_{s_j \in \mathrm{Ne}(s_i)} \frac{\mathrm{Score}(s_j)}{|\mathrm{Ne}(s_j)|}

多语言支持:国际饭局的翻译官

今晚的饭局还有两位外国客户,他们用英文发言,其他人用中文回应,偶尔还冒出"OK"“deadline“这种混搭词。小雅像个三语服务员,中英文无缝切换。她怎么做到的?第一步是”语种识别“——先判断当前这句是中文还是英文。这本质上是个分类问题:系统用不同语言模型分别给这句话打分,哪个语言模型”读起来最顺”,就判给它那个语种。

“读起来最顺”在技术上有量化指标,叫困惑度(PPL)。语言模型会给每个词一个出现概率,概率越高说明越像这种语言;把所有词的概率取对数求平均,再用指数还原成困惑度。困惑度越低,代表这段文本在该语言下越“顺口”。识别出语种后,Notta会切换到对应的转写引擎,甚至把英文发言实时翻译成中文显示在纪要里,跨国会议的沟通成本就这样被降了下来。

小雅能服务国际饭局,不是因为天生会三门外语,而是因为她在三种语言的餐厅都训练过。多语言支持的本质,就是把“多语训练”和“语种识别”打包成一套自动切换流程。对出海团队来说,这解决了一个非常现实的痛点:中英混合的周会不再需要专人翻译,Notta生成的也是双语纪要,谁都能看懂。

PPL(L)=exp⁡(−1N∑i=1Nlog⁡P(wi∣L))\mathrm{PPL}(L) = \exp\left( -\frac{1}{N} \sum_{i=1}^{N} \log P(w_i \mid L) \right)
一句话理解:把句子放到某语言模型里“读”一遍,读得越流利,困惑度越低,越像这种语言。
  1. L候选语言,比如中文、英文或日文。
    LL
  2. P(w_i | L)第 i 个词在语言 L 下出现的概率,高代表这个词很“地道”。
    P(wi∣L)P(w_i \mid L)
  3. Σ 与 1/N把所有词的对数概率求平均,避免句子长短影响结果。
    1N∑i=1Nlog⁡P(wi∣L)\frac{1}{N} \sum_{i=1}^{N} \log P(w_i \mid L)
  4. exp取指数还原成可读的困惑度数值,越低越像这种语言。
    exp⁡(−1N∑i=1Nlog⁡P(wi∣L))\exp\left(-\frac{1}{N} \sum_{i=1}^{N} \log P(w_i \mid L)\right)

Agent化流水线:会自己办事的秘书

小雅最有价值的本事不是记性好,而是“会办事”。饭局还没散,她已经把“张总负责拉群”“李工周五发版”写成了待办;散场十分钟后,她甚至把任务通过店内系统分发到了对应客人的手机上。她像个代理(Agent)——不是被动等指令,而是按标准流程主动完成一整串动作。

这套流水线在Notta内部是层层嵌套的函数调用:原始录音先进ASR转成文本,文本再进摘要模块提炼结论,摘要里再抽取出带负责人和截止时间的待办,最后通过API接口把待办同步到飞书、钉钉或项目管理工具。每一步的输出都是下一步的输入,环环相扣。这也是“Agent化”区别于普通工具的地方:它拥有一个从感知到决策再到行动的完整闭环。

想象一下:如果没有这层Agent化,一场会议结束后,助理要听录音、写纪要、逐条粘贴待办、手动 @ 负责人,整个过程至少一两个小时。而Notta把这条流水线压缩到了会议结束后的几分钟内。对小雅来说,她不只是个记录员,还是个自带行动力的管家——这也是“会议记录AI化”从“省事”升级到“提效”的关键分水岭。

Action=F(Summary(ASR(Audio)))\text{Action} = \mathcal{F}\Big(\mathrm{Summary}\big(\mathrm{ASR}(\mathrm{Audio})\big)\Big)
一句话理解:录音先变成文字,文字再变成纪要,纪要最后触发动作——像流水线上的三道工序。
  1. Audio原始录音,会议的“毛坯食材”。
    Audio\mathrm{Audio}
  2. ASR(……)耳朵的产出,把音频转成逐字稿。
    ASR(Audio)\mathrm{ASR}(\mathrm{Audio})
  3. Summary(……)大脑的提炼,从逐字稿中抽出结论和待办。
    Summary(ASR(Audio))\mathrm{Summary}\big(\mathrm{ASR}(\mathrm{Audio})\big)
  4. F(……)行动器,把结构化纪要转换成IM消息或任务卡片发送出去。
    F(Summary(ASR(Audio)))\mathcal{F}\Big(\mathrm{Summary}\big(\mathrm{ASR}(\mathrm{Audio})\big)\Big)

产品横向对比:三家餐厅的金牌服务员

市场上做会议转写的产品不少,就像同一商圈里三家餐厅都有金牌服务员:Otter、飞书妙记和Notta。选哪家,取决于你的饭局是什么风格。Otter是海外老牌,英文转写经验丰富,和Zoom、Teams深度集成,但它对中文的支持和本土化生态相对薄弱;飞书妙记则深度绑定飞书,适合本来就用飞书协作的团队,纪要直接进飞书文档,方便是方便,但离开飞书生态就威力大减。

Notta的差异化打法,正好卡在“中文优化+Agent自动化”上。它不是要做所有人的服务员,而是要做“中文开会场景下最会办事”的服务员:多语言转写覆盖中日英等语种,生成的纪要和待办能通过Agent流水线分发到各类协作工具。选型时怎么量化比较?最朴素的思路是列一张评分表:每个维度(准确率、中文支持、多语言、生态集成、Agent能力、隐私合规)按产品打分,再乘上权重加总。

回到选餐厅的逻辑:如果你是家法国餐厅,Otter这位会法语的侍者最合适;如果你所有客人都在飞书生态里订座,妙记是顺手的选项;但如果你要的是“中文开完会直接出待办并派发到IM”的一站式服务,Notta就是那位眼疾手快的全能选手。理解了这个加权评分的框架,你就不再被厂商的宣传话术带着走,而是能列出自己的需求清单再下单。

Scorek=∑j=1nwj×sk,j\mathrm{Score}_k = \sum_{j=1}^{n} w_j \times s_{k,j}
一句话理解:给每个维度定权重,逐个打分后加权求和,总分高的胜出。
  1. k第 k 个候选产品,比如Otter、妙记或Notta。
    kk
  2. s_{k,j}第 k 个产品在第 j 个维度上的得分,比如“中文支持 8 分”。
    sk,js_{k,j}
  3. w_j第 j 个维度的权重,代表你们团队有多看重这个维度。
    wjw_j
  4. Σ把各维度得分加权累加,得到该产品的总分。
    ∑j=1nwj×sk,j\sum_{j=1}^{n} w_j \times s_{k,j}

隐私合规防护:签了保密协议的服务员

小雅知道的秘密比谁都多——新产品的定价、裁员名单、并购计划。客人凭什么信她?因为她签过保密协议,餐厅还有监控审计。同理,Notta作为会议工具,处理的是全公司最敏感的信息资产,隐私合规不是加分项,而是生死线。合规的第一步是数据加密:录音和转写文本在传输时用TLS加密,在云端存储时再做一层静态加密,相当于把文件锁进保险柜,快递途中和仓库里都是锁着的。

第二步是权限管理:不是所有员工都能看所有会议纪要,项目A的纪要对项目B的成员不可见,管理员可以配置访问范围、导出权限和有效期。更进一步的合规还包括审计日志(谁在什么时候看了哪份纪要)以及GDPR等法规认证。在统计类场景中,还会用到差分隐私,给输出结果注入精心设计的噪声,让攻击者无法从统计数字里反推出某个具体客人的信息。

对小雅来说,签保密协议不是签个字就完事,而是每天都要遵守“不该看的不看、不该说的不说、被问到了也不能说实话”。隐私合规本质上是一种贯穿产品全生命周期的信用体系:加密是保险柜,权限是门禁卡,合规认证是公信力背书。对于一个会议工具,一旦隐私信任崩塌,再好的转写准确率也留不住客户——这也是Notta敢做企业级服务的前提。

M(x)=x+Lap⁡(Δfε)\mathcal{M}(x) = x + \operatorname{Lap}\left( \frac{\Delta f}{\varepsilon} \right)
一句话理解:在真实答案上撒一把“概率盐粒”,让外人尝不出单个客人的口味,但整桌菜的平均风味依然准确。
  1. x真实的统计值,比如“上周会议平均时长”。
    xx
  2. Δf单条记录能对结果造成的最大影响,即单个客人隐私的“最大暴露量”。
    Δf\Delta f
  3. ε隐私预算,ε 越小,噪声越大,隐私保护越强。
    ε\varepsilon
  4. Lap(……)拉普拉斯分布的随机噪声,按比例注入,让结果“模糊但整体正确”。
    Lap⁡(Δfε)\operatorname{Lap}\left( \frac{\Delta f}{\varepsilon} \right)

实时转写体验:边吃边记的同步感

小雅最让客人惊叹的,是她从不等饭局结束才补笔记。客人刚说完一句话,她笔下的记录已经跟上了。但仔细看你会发现,她其实有零点几秒的“书写延迟”——不是零延迟,而是快到让人感觉不到。这就是实时转写的真相:它本质上是一种“流式半同步”处理,系统等音频积累成一小块,立刻识别这一块,再继续等下一块,像流水线上逐件加工,而不是等整批原料到齐再开工。

要控制延迟,关键在三个环节:缓冲块大小、特征提取速度和流式解码速度。缓冲块越大,要攒的音频越多,延迟越高;特征提取和解码的耗时则取决于模型效率和算力。工程上追求的是让总延迟小于真实语音的时长——只要处理速度追得上说话速度,用户就感知为“实时”。另外,前端的降噪增强也很重要:麦克风采集到的信号先做降噪,去掉键盘声和空调声,转写引擎拿到的才是“干净”的信号。

所以小雅的“同步感”并不是魔法,而是把每步处理都压进几百毫秒的工程艺术。Notta把实时转写和降噪结合起来,让人在嘈杂的开放办公区、咖啡馆里也能得到干净的转写结果。对用户来说,这种体验的意义在于“安全感”——会议刚结束,纪要已经躺在手机里了,不需要对着录音再花一小时补课。

Latency=BR+tfeat+tdec<Treal\mathrm{Latency} = \frac{B}{R} + t_{\mathrm{feat}} + t_{\mathrm{dec}} < T_{\mathrm{real}}
一句话理解:缓冲、特征提取和解码的总耗时,必须小于一句话真实说完的时间,才叫“实时”。
  1. B单个缓冲块包含的音频数据量,块越小延迟越低。
    BB
  2. R音频码率,即每秒产生的数据量,B/R 就是攒一块音频要花的时间。
    BR\frac{B}{R}
  3. t_feat + t_dec特征提取与流式解码的耗时,相当于“听”和“写”各自要花的时间。
    tfeat+tdect_{\mathrm{feat}} + t_{\mathrm{dec}}
  4. T_real真实语音的时长,总延迟必须小于它,才能边听边出字。
    TrealT_{\mathrm{real}}

AI 应用场景

场景一:每周产品周会纪要自动化

阶段:ASR转写 + 智能摘要 + 待办提取

解决的问题:传统周会靠人工记录,记录员漏重点、整理纪要要一小时、会后待办全靠口头承诺容易丢。Notta自动把四十分钟的会议转成结构化纪要,并抽出“谁在什么时间点前做什么”的待办。

具体案例:某SaaS创业团队每周五开周会,接入Notta后,会议结束十分钟内全员收到纪要链接和待办列表。产品经理直接在纪要把“接口联调完成”标为高亮节点,技术负责人把“周五发版”同步进项目管理工具,会议从“消耗时间”变成“推动进度”。

场景二:客服中心全量通话质检

阶段:ASR转写 + 说话人分离 + 关键词摘要

解决的问题:呼叫中心质检员过去每天只能抽样听5%的通话录音,漏掉大量违规话术和客户投诉信号。Notta先做全量转写,再用说话人分离区分坐席与客户,最后用关键词规则自动标记“退款”“投诉”“辱骂”等风险片段。

具体案例:一家日通话量2000通的电商客服中心,使用Notta全量转写后,违规检出率从抽检时代的不足20%提升到90%以上;质检分析师只需查看被标记的片段,人均每日处理量提升了三倍。

场景三:跨国团队双语会议零障碍

阶段:多语言支持 + 语种识别 + 中英互译

解决的问题:出海团队与海外客户开会时,中英混合表达让部分成员跟不上讨论,会后纪要还需人工翻译。Notta自动识别每句话的语种并用对应引擎转写,英文发言实时翻译成中文,生成双语纪要。

具体案例:一家出海SaaS公司与美国客户每两周开一次线上产品评审会,使用Notta双语转写后,国内工程师无需依赖同传,会后收到中英对照纪要,客户提出的需求点一条不落。

Python 演示

python69 行
import refrom typing import List, Tuple # 模拟ASR输出的语音片段: (开始时间, 结束时间, 文本)RAW_SEGMENTS: List[Tuple[float, float, str]] = [    (0.0, 1.5, "大家好我们开始今天的会议"),    (1.6, 3.2, "王总这周产品要上线了"),    (3.3, 5.0, "好的我来说明一下测试进度"),    (5.1, 6.8, "接口联调基本完成周五上预发"),    (6.9, 8.4, "那我们周五发版风险大不大"),    (8.5, 10.0, "风险可控我们已经压测了两轮"),    (10.1, 12.0, "既然这样我建议下周一早上上线"),    (12.1, 13.5, "同意那谁负责写发布清单"),    (13.6, 14.8, "我来写会后发到群里"),]  def separate_speakers(segments: List[Tuple[float, float, str]],                      gap_threshold: float = 3.0) -> List[str]:    """简化版说话人分离: 按时间间隙聚类, 模拟声纹聚类效果"""    labels: List[str] = []    prev_end = 0.0    speaker_id = 0    for start, end, _ in segments:        if start - prev_end > gap_threshold:            speaker_id ^= 1        labels.append(f"说话人{speaker_id + 1}")        prev_end = end    return labels  def summarize(segments: List[Tuple[float, float, str]],              top_k: int = 3) -> List[Tuple[float, float, str]]:    """简化版摘要: 按关键词密度与长度打分, 取TopK"""    keyword_bank = ["上线", "发布", "联调", "风险", "压测", "清单"]    scored = []    for start, end, text in segments:        kw_score = sum(1 for kw in keyword_bank if kw in text)        len_score = min(len(text) / 20.0, 1.0)        scored.append((kw_score * 2.0 + len_score, start, end, text))    scored.sort(reverse=True)    return [(s, e, t) for _, s, e, t in scored[:top_k]]  def extract_todos(segments: List[Tuple[float, float, str]],                  speaker_labels: List[str]) -> List[str]:    """提取待办: 命中责任相关表述则记录执行人和内容"""    todos = []    for (start, end, text), speaker in zip(segments, speaker_labels):        if re.search(r"(我建议|我来|负责|会后)", text):            todos.append(f"{speaker} 待办: {text}")    return todos  def main() -> None:    labels = separate_speakers(RAW_SEGMENTS)    print("=== 说话人分离结果 ===")    for (start, end, text), speaker in zip(RAW_SEGMENTS, labels):        print(f"[{start:.0f}s-{end:.0f}s] {speaker}: {text}")    print("\n=== 会议纪要(重点句) ===")    for start, end, text in summarize(RAW_SEGMENTS):        print(f"[{start:.0f}s-{end:.0f}s] {text}")    print("\n=== 待办事项 ===")    for todo in extract_todos(RAW_SEGMENTS, labels):        print(f"- {todo}")  if __name__ == "__main__":    main()
目的:用一段模拟ASR输出的会议片段,完整演示“说话人分离 → 摘要 → 待办提取”的会议记录AI化流水线。
  1. separate_speakers(...)模拟说话人分离,用时间间隙作为“换人”信号,真实系统里这里会替换成声纹向量聚类。
  2. keyword_bank = ["上线", "发布", ...]模拟领域词典,用于给句子打重要性分。
  3. scored.sort(reverse=True)按重要度倒序排列,取前3句作为纪要。
  4. re.search(r"(我建议|我来|负责|会后)", text)用正则命中“责任表达”,提取待办责任人。
  5. extract_todos(RAW_SEGMENTS, labels)把待办与说话人关联,输出“谁负责什么”。

常见误区

误区我用了Notta,再吵的会议室、再重的口音都应该一字不差转出来,转错了就是工具不行。

正解ASR的本质是“猜”,贝叶斯公式里声学和语言模型都只是概率打分。嘈杂环境、方言口音、生僻专业词都会让准确率下滑。Notta靠领域微调和降噪把准确率从“听不清”拉到“基本可用”,但天花板达不到100%,尤其多人同时说话时仍需人工校对。

为何常见:产品宣传语常写“高准确率转写”,用户容易把“高”理解成“完美”,忽略了语音识别本身的概率性。

误区以为Notta像人脸识别一样,听一段声音就知道这是“王总”,然后自动在纪要里写好名字。

正解说话人分离只做“聚类”,按声纹相似度把片段分成“说话人1/说话人2”,它不负责猜身份。要变成“王总说的”,需要用户手动改标签,或通过通讯录声纹注册、会前校准来匹配。

为何常见:演示视频里常直接展示“王总:……”的成稿效果,让人误以为系统天生认识每个人。

误区觉得摘要功能就是把会议逐字稿开头几句复制粘贴出来,没什么技术含量。

正解Notta的摘要是“抽取+生成”两条腿走路:先用TextRank这类算法给所有句子按重要度打分,抽出关键句;再用大模型对关键句做改写压缩、补充语义,并额外识别待办。它是理解语义后的再创作,而不是简单的截取。

为何常见:“摘要”一词在日常生活里就是“总结一下”,很容易让人低估它的算法深度。

误区会议结束后把录音文件删掉,隐私就安全了,其他都不重要。

正解隐私合规是全链路的工程:传输要TLS加密,云端存储要静态加密,访问要有权限分级和审计日志,还要符合GDPR等法规认证。删除录音只是最后一环,甚至为了审计留痕,某些场景还需要保留加密副本。

为何常见:大众对“删除”有朴素的信任感,看不到数据从麦克风到云端经过了传输、存储、处理、分享等多个环节。

误区以为“实时”就是语音刚落文字立刻出现,像科幻电影里的同声字幕,延迟一丁点就是不合格。

正解实时转写是流式“半同步”:系统必须攒一小段缓冲音频才能开始识别,加上特征提取和流式解码的时间,通常存在数秒以内的延迟。Notta的目标不是零延迟,而是把延迟压缩到让用户“感觉同步”,同时保持转写连贯。

为何常见:手机输入法和直播字幕的体验让人养成了“几乎零延迟”的预期,忽略了语音流式处理在技术和成本上的权衡。

面试题

Q1. 在语音识别贝叶斯公式中,P(W) 代表什么?

单选题 · easy

  • A.声学模型
  • B.语言模型← 正确答案
  • C.发音词典
  • D.解码器

答案:B。P(X|W) 是声学模型,衡量发音像不像;P(W) 是语言模型,衡量文本通顺度。两者相乘取 argmax 得到最终文本。A、C、D 都不是概率模型,选 B。

Q2. 说话人分离主要依据下面哪类特征?

单选题 · easy

  • A.音调高低
  • B.语速快慢
  • C.声纹特征← 正确答案
  • D.音量大小

答案:C。声纹特征就像声音的指纹,由神经网络从语音中提取,能稳定区分不同说话人。音调、语速、音量都是短时且易变的表层特征,受情绪和距离影响大,不能作为分离依据。

Q3. TextRank 摘要算法中的阻尼系数 d 起什么作用?

单选题 · mid

  • A.控制迭代次数
  • B.平滑保底分数← 正确答案
  • C.决定句子长度
  • D.设定关键词个数

答案:B。d 通常取 0.85,公式中的 (1-d) 是每个句子的保底分,防止孤立句子分数归零;同时 d 控制邻居分数传播的比例。它与迭代次数、句子长度和关键词个数无关。

Q4. 语言困惑度 PPL 越小说明什么?

单选题 · mid

  • A.翻译速度越快
  • B.语言越通顺← 正确答案
  • C.语音越清晰
  • D.播报越流畅

答案:B。PPL 是语言模型对文本“意外程度”的度量,数值越低代表模型给这段文本的概率越高、读起来越顺。它是语种识别和语言模型质量评估的核心指标,与音频清晰度和播放流畅度无关。

Q5. Notta 的 Agent 化流水线正确顺序是?

单选题 · mid

  • A.转写→摘要→派发← 正确答案
  • B.摘要→转写→派发
  • C.派发→转写→摘要
  • D.转写→派发→摘要

答案:A。原始录音先进 ASR 转成文本,再进摘要模块提炼结论和待办,最后按结构化结果触发分发动作。顺序错了数据链路就断了,比如没有转写文本摘要无从谈起。

Q6. 相比 Otter,Notta 的核心差异化优势是?

单选题 · easy

  • A.仅支持英文
  • B.中文与Agent优势← 正确答案
  • C.不支持实时转写
  • D.没有纪要功能

答案:B。Otter 英文生态强,但中文支持弱;Notta 主打中文优化和 Agent 化自动化,把纪要直接变成可分发的待办。C 和 D 都与事实相反,Notta 支持实时转写并具备纪要功能。

Q7. 差分隐私中 ε(隐私预算)越小意味着什么?

单选题 · hard

  • A.噪声更大更安全← 正确答案
  • B.噪声更小更快
  • C.解码延迟更低
  • D.识别精度更高

答案:A。差分隐私的噪声幅度与 Δf/ε 成正比,ε 越小,注入的拉普拉斯噪声越大,单条记录的影响被掩盖得越彻底,隐私保护更强,但统计结果的可用性会下降。

Q8. 哪些因素会影响实时转写的延迟?

多选题 · mid

  • A.音频块大小← 正确答案
  • B.解码速率← 正确答案
  • C.说话人人数
  • D.特征耗时← 正确答案

答案:ABD。延迟公式为 Latency = B/R + t_feat + t_dec。音频块越大延迟越高,解码越慢延迟越高,特征提取越耗时延迟越高。说话人人数影响的是分离计算量,不直接进入这条延迟等式。

Q9. ASR 引擎选型时需要重点考察哪些维度?

多选题 · hard

  • A.识别准确率← 正确答案
  • B.领域词汇← 正确答案
  • C.部署成本← 正确答案
  • D.会议时长

答案:ABC。选型要看声学模型在噪声下的准确率、语言模型对“OKR、灰度发布”等领域词的支持,以及自研与第三方方案的部署成本。会议时长是使用场景参数,不是引擎本身的考察维度。

Q10. 以下哪些属于 Notta 隐私合规的组成部分?

多选题 · hard

  • A.传输加密← 正确答案
  • B.权限控制← 正确答案
  • C.合规认证← 正确答案
  • D.自动删除

答案:ABC。隐私合规是全链路体系:TLS 传输加密、云端静态加密、权限分级、审计日志,以及 GDPR 等认证背书。D 太绝对,自动删除只是可选项之一,且审计场景可能反而需要保留加密副本。