全部文章

· Casimiro Ferreira· 1 分钟阅读

我们为何囤积数据:从抓取的目录到更聪明的语音与语言模型

  • Datasets
  • Data Collection
  • ASR
  • NLP
  • TTS
  • LLM
  • FOSS

我们写了很多关于如何提取数据的内容—— 侦察工具反爬虫传输层带类型的音乐元数据客户端。 一个合理的问题是为什么。我们是一家语音 AI 公司;维护抓取音乐百科和电台目录的 爬虫,究竟是在做什么?

答案是数据处于我们所交付的一切的上游。一个语音助手的好坏,取决于它预期听到的 词、它能识别的实体,以及它知道的发音。这些都不来自架构图。它们来自数据——而有价值 的数据很少现成地躺在某个数据集里。它散布在公开的网络上,散布在人类花了几十年整理 的目录之中。

以下是我们采集这些数据之后发生的事。

实体:一个语音助手赖以生存的词表

对助手说 “play Sultans of Swing by Dire Straits”。在任何模型能对此做出反应之前, 必须有某个东西知道 Sultans of Swing 是一首曲目,而 Dire Straits 是一位艺人。 把这乘以用户可能说出的每一位艺人、专辑、电台、播客和流派,你就得到了一个媒体助手 真正的词表——数十万个命名实体,其中没有一个出现在标准的 NLP 训练语料里。

我们的媒体客户端产出的正是这个:带有规范 id 的带类型记录,被归一化到 mediavocab 模式中。这些实体目录 直接喂给:

  • 基于关键词的意图匹配 —— 实体列表成为把媒体查询锚定在 OpenVoiceOS 中的 gazetteer(地名/实体词典)。
  • 意图分类器 —— 我们的媒体意图数据集把真实抓取到的实体与模板及 LLM 辅助的句子 合成结合起来,产出像真实用户那样说出的话语,其中填入的是真实存在的实体。这样训练 出来的模型,能在 OpenVoiceOS 媒体流水线中处理”这是不是一个播放请求,播放什么?” 的判断。
  • 合成 NER 语料 —— 同样的配方可以推广:拿一个真实实体的目录,围绕它们生成自然 句子,你就得到了一个带标注的命名实体数据集,覆盖任何学术语料都不涵盖的领域。实体 是真实的,所以分布是诚实的;句子是合成的,所以数量随你所需。

让语音识别偏向真正重要的词

通用 ASR 是在通用语音上训练的,所以它会把 Dire Straits 转写成 “dire straights”, 并把每一个葡萄牙村庄的名字搞得面目全非。解决办法不是从头重训——而是偏置 (biasing):把你所在领域的词表交给识别器。

抓取来的目录就是那个词表。具体来说:

  • 语言模型偏置 —— 在实体丰富的文本上训练的 n-gram 或浅融合 LM,会把解码器推向 领域内的词。一个媒体助手的 LM 应当在曲目标题和艺人名字上训练,而我们的可以做到, 因为我们拥有它们——带类型、去重、来源干净。
  • 提示条件识别 —— 更新的架构在推理时接受一个文本提示或上下文列表。把用户实际的 曲库——我们客户端提取出的实体——喂进识别器的上下文,就能把”无法识别的专有名词” 变成”已知的词表条目”。
  • 微调数据 —— 在偏置还不够的地方,实体目录加上我们的 TTS 语音,可以为某个部署绝不能弄错 的确切短语生成合成语音。这就是我们商业上提供的 数据集构建服务,而它建立在同一条开放的流水线之上。

发音:从爬取的词典到 G2P 和 TTS

我们最有价值的一些爬取成果不是实体目录,而是词典。爬取 Infopédia 词典产出了 infopedia-pt-ipa, 超过 10 万对欧洲葡萄牙语 word→IPA。这个数据集:

  • 为我们基于规则的 葡萄牙语 G2P 栈 做基准测试与调优,
  • TTS 语音 锚定发音, 让它们像母语者实际那样说出词语,
  • 并为像我们的 葡萄牙语异读词工作 这样带含义标注的资源 提供种子,在那里同一拼写会依语义映射到不同的读音。

拼写到读音的数据,是语音技术中最不光鲜的角落,却也是最能决定一个声音听起来是否 地道的一环。没有人会把这些数据递给你。你去爬它、清洗它、发布它——好让下一个团队 不必再做一遍。

为 LLM 提供的诚实燃料

上面的一切也适用于大语言模型,还多了一层转折:如今来源比数量更重要。开放网络 正日益被模型生成的文本污染;在它上面训练或评估,等于悄悄回收昨天模型的输出。这正是 我们看重那些人类来源干净的源头的原因——几十年的 Usenet 归档、精心整理的百科、 官方词典——也是为什么我们发布的每一个数据集都会说明每条记录来自何处。

结构化目录也在推理时喂给 LLM:一个带类型、去重的实体存储,正是检索层或智能体的 工具 API 用来为其答案提供依据所需要的。在杂乱源头之上建立干净的 API,不只是抓取上的 便利——它是让语言模型始终紧贴事实的方式。

端到端的流水线

所以完整的图景是这样的:

recon → resilient extraction → typed clients → normalised catalogues
      → gazetteers & intent data     (NLP)
      → biasing LMs & fine-tune sets (ASR)
      → lexicons & phoneme labels    (G2P / TTS)
      → provenance-clean corpora     (LLMs, retrieval)

每一个阶段都是开源的,每一个数据集都在许可允许的地方发布,而那条填补我们自己模型 需求的同一条流水线,也可以 作为一次合作供你使用。这些爬虫不是支线任务。它们是整个技术栈赖以 建造的采石场。