我如何为语音转录模型实现ASR偏置 [开源]

Reddit r/LocalLLaMA 工具

摘要

本文讲解了如何为语音转录模型实现ASR偏置(ASR biasing),并借助Groq和本地模型的示例进行说明,同时介绍了集成该功能的开源项目Freestyle。

过去几周,我一直在构建一个开源的 Wispr Flow 克隆项目。简单来说,这是一款语音听写应用,让你通过说话而不是打字来加快输入速度。第一周我主要搭建基础的语音转文字(STT)功能。Wispr Flow 最酷的功能之一就是 ASR 偏置(ASR biasing),他们称之为“词典”。我成功找到了在项目中实现该功能的方法,现在想分享一下具体做法。 **什么是 ASR 偏置?** ASR 偏置是一种转录技术,通过向模型提供单词拼写提示或常见短语提示来引导模型。例如视频中我给出的引导是:我想谈论“Knicks”和“OG Anunoby”。设置偏置后,当你说出发音相近的短语时,你预设的单词更有可能出现在转录结果中。 **代码实现方式** 实现 ASR 偏置其实非常简单。每个模型提供商的处理方式不同,叫法也各异。例如 OpenAI 和 Groq 将提示(prompt)作为其偏置机制,类似于大语言模型(LLM)的系统提示。本地模型如 whisper.cpp 和 MLX 的 Mac 本地模型也使用相同的提示系统。而 Deepgram 和 Eleven Labs 等提供商则将其称为“关键术语”(key terms),通过搜索参数进行配置。下图展示了在 Groq 中的实现方式:只需将词典单词注入模型的“系统提示”即可。 ```javascript const transcription = await groq.audio.transcriptions.create({ file: fs.createReadStream("YOUR_AUDIO.wav"), model: "whisper-large-v3-turbo", prompt: "vocabulary: Knicks, OG Anonuby", // 可选 response_format: "verbose_json", timestamp_granularities: ["word", "segment"], language: "en", temperature: 0.0, }); ``` 在 Freestyle 项目中,我们实现了 ASR 偏置,并将其命名为“词汇表”(Vocabulary)功能。创建词汇表后,它会保存在 Freestyle 本地。每次运行推理时,保存的词汇表都会重新注入到模型的系统提示或关键术语中。 **Freestyle 开源项目** 我们在 ASR 偏置方面所做的所有工作都已开源,并托管在 GitHub 仓库中。如果你对这个项目感兴趣,不妨给个星标!我们也在积极寻找对开源语音听写感兴趣的朋友,一起建立社区。 https://github.com/freestyle-voice/freestyle
查看原文

相似文章

@MaxForAI: 如果你在做语音Agent,你应该试一下这个项目 来自南洋理工、新国立和上海 AI Lab的团队发布了:Mega-ASR 这个完全开源的ASR基于 Qwen3-ASR构建,目的是打破长期困扰ASR的在嘈杂、混响或其他受损现实环境中表现的瓶颈…

X AI KOLs Timeline

南洋理工、新国立和上海 AI Lab 联合发布 Mega-ASR,一个基于 Qwen3-ASR 构建的完全开源 ASR 模型,通过 Voices-in-the-Wild-2M 数据集和渐进式声学到语义优化,在真实世界嘈杂环境中实现最高 30% 的相对词错误率下降,且仅 1.7B 参数可在消费级硬件高效推理。

在API中引入下一代音频模型

OpenAI Blog

OpenAI 为 API 引入了下一代音频模型,包括改进的语音转文本(gpt-4o-transcribe、gpt-4o-mini-transcribe)和可自定义的文本转语音模型,使开发者能够构建更智能、更具表现力的语音代理,在具有挑战性的场景中提升准确性。