towardsdatascience.com/building-a-user-insights-gathering-tool-for-product-managers-from-scratch-a6459dc1c3f6?source=collection_archive---------8-----------------------#2024-08-12
告别付费的客户洞察中心!了解如何结合五个开源AI模型,自动从用户访谈中获取洞见。
https://medium.com/@zaninihugo?source=post_page---byline--a6459dc1c3f6
https://towardsdatascience.com/?source=post_page---byline--a6459dc1c3f6
Hugo Zanini ·发布于 Towards Data Science ·阅读时间 11 分钟 ·2024 年 8 月 12 日 –
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6094d50facdc92f35218923622bab796.png
图片来源 Daria Nepriakhina 于 Unsplash
作为数据平台的技术产品经理,我经常开展用户访谈,以发现数据开发过程中遇到的难题。
然而,在探索新的问题领域时,我常常因与组织内不同个体的大量对话而感到压力山大。随着时间的流逝,我采取了一套系统化的方法来应对这一挑战。我专注于在每次访谈中做详尽的记录,之后再回顾这些笔记。这有助于我巩固理解,识别用户讨论中的模式。
不过,在做笔记和积极倾听之间的分心通常会降低我的沟通质量。我发现,当有人帮我做笔记时,我的访谈效果明显提升。这使我能全神贯注于与受访者的交流,专注于他们的发言,从而实现更有意义和高效的互动。
为了提高效率,我从在会议中做笔记转向了录音并在功能可用时进行转录。这极大地减少了我需要进行的访谈数量,因为可以从较少的对话中获取更多洞见。然而,这一变化要求我花费时间回顾转录内容和观看视频。下图展示了我在规划新产品开发机会时遵循的简化流程。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/98af683776e7bdb22a3114f9e803ed9d.png
图片来源:作者
由于会议转录量大且分类用户洞见困难,整合与分析变得极具挑战。
此外,现有的会议转录工具大多限于英文,而我的多数对话是葡萄牙语。因此,我决定在市场上寻找一个能帮助我克服这些挑战的解决方案。
我发现了一些工具,如Dovetail、Marvin、Condens和Reduct,它们解决了大部分痛点。这些工具自称为客户洞察中心,主要产品通常是客户访谈的转录。
基本上,你可以在这些平台上上传访谈视频,获得带有说话人标记的转录文本,以及指向原视频的链接。你还可以在文本上添加高亮、标签和评论,并请求对话摘要。
这些功能确实能解决我的问题;然而,这些工具的价格较高,尤其是考虑到我居住在巴西,而它们收取美元费用。
这些工具并没有带来任何革新性的创新,所以我决定构建一个开源替代方案,可以在Colab笔记本上免费运行。
作为一位出色的产品经理,我首先根据自身需求确定了产品的关键特性。以下是我列出的主要需求:
- 成本与可访问性
- 免费
- 无需编程经验即可使用
- 数据隐私与安全
- 保持数据私密——不与外部服务连接
- 性能
- 执行速度需快于视频时长
- 高精度的多语言转录
- 功能
- 发言人识别
- 便于在转录内容中搜索
- 轻松突出显示转录内容
- 方便创建正在进行的研究的存储库
- 集成
- 与公司现有工具(Google Workspace)集成
- 集成LLM模型以接收任务提示,基于转录内容执行
根据这些需求,我设计了解决方案应具备的功能:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/92381377517963db8d4c326de1666e2b.png
图片来源:作者
随后,我设计了预期的输入和用户界面来定义这些功能:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2cd00c7a1d251e1fb7d75824b24ef412.png
图片来源:作者
用户会将他们的面试上传至 YouTube,并设为不公开的视频,随后建立一个 Google Drive 文件夹存放转录文件。之后,他们可以进入 Google Colab 笔记本,输入面试的基本详情、粘贴视频链接,并可选择为大型语言模型(LLM)指定任务。最终的成果将是 Google Docs,用户可在其中汇总见解。
下面是产品架构。此方案融合了五种不同的机器学习模型及若干 Python 库。下文将简要介绍各组成部分;若您更关注实际体验,可直接跳至“I got it”部分。
面试配置与视频上传
为了构建一个用户友好的界面,方便设置面试并提交视频链接,我采用了 Google Colab 的表单功能。这项功能支持创建文本框、滑块、下拉菜单等元素。代码隐藏在表单背后,非常适合非技术背景的用户使用。
音频下载与转换
我运用了 yt-dlp 库仅下载 YouTube 视频的音频部分,并将其转换成 mp3 格式。这个工具极其简便,您可在此查阅其文档。
音频转录
为了记录会议内容,我选用了 Open AI 的 Whisper。这是一款开源的语音识别模型,基于超过 68 万小时的多语言数据训练而成。该模型运行效率极高;一小时的音频大约需 6 分钟即可在 16GB T4 GPU(Google Colab 提供的免费 GPU)上完成转录,同时支持 99 种语言。
鉴于隐私保护是此方案的重要考量,模型的参数已下载,所有推断过程均在 Colab 实例内执行。此外,我在笔记本中加入了一个模型选择表单,让用户依据所需准确度挑选不同模型。
讲话者识别
讲话者识别通过称为讲话者分段的技术实现。其工作原理是将音频分割成多个语音片段,每段代表一个特定的讲话者。通过这种方法,我们能确定谁在何时发言。
由于从 YouTube 上传的视频缺少标识讲话者的元数据,讲话者会被标记为讲话者 1、讲话者 2 等。之后,用户可以在 Google Docs 中搜索并替换这些名称,以标注讲话者的身份。
对于讲话者分离,我们将采用一个名为多尺度讲话者分离解码器(MSDD)的模型,该模型由 Nvidia 研究员开发。这是一种高级的讲话者分离技术,通过多尺度分析和动态加权实现高精度和灵活性。
该模型擅长识别并准确分类多位讲话者轮流发言的瞬间——这是访谈中常见的场景。此模型可通过 NVIDIA NeMo 框架调用。它使我能够获取 MSDD 检查点,并在 colab 笔记本中直接运行讲话者分离,只需少量代码。
在检查 MSDD 的讲话者分离结果时,我发现标点符号处理较差,长句中的一些停顿词如“嗯”、“是的”被误判为讲话者的中断——这导致文本难以阅读。
因此,我决定在流程中加入一个标点模型,以提升转录音频的可读性和便于人工审核。为此,我从 Hugging Face 获取了 punctuate-all 模型,这是一个高效且精准的解决方案,支持以下语言:英语、德语、法语、西班牙语、保加利亚语、意大利语、波兰语、荷兰语、捷克语、葡萄牙语、斯洛伐克语和斯洛文尼亚语。
视频同步
根据我对行业解决方案的比较,一个显著的需求是每个短语都应与采访中所述的时间点相对应。
Whisper 转录包括指示时间戳的元数据;不过,这些元数据不够精确。
因此,我采用了一个名为 Wav2Vec2 的模型来进行更精准的匹配。基本而言,这个方案是一种神经网络,旨在学习音频表示并执行语音识别对齐。该流程涉及在音频信号中定位每个段落的具体时间戳,并相应地调整文本。
通过精准地匹配转录文本与时间戳,我利用简单的 Python 代码创建了指向视频中开始说话时刻的超链接。
大型语言模型 这个管道步骤包含一个准备在本地运行并分析文本的大型语言模型,提供有关访谈的见解。默认情况下,我加入了 Gemma 模型 1.1b,并设置了一个提示来概括文本。如果用户选择概括,它将以项目符号列表形式出现在文档顶部。
此外,通过点击 显示代码,用户可以修改提示并要求模型执行其他任务。
解决方案执行的最后一项任务是生成带有访谈转录和超链接的 Google 文档。这是通过 Google API Python 客户端库 实现的。
由于该产品在我的日常工作中变得非常实用,我决定给它起个名称,以便更容易提及。我将其称为 Insights Gathering Open-source Tool,简称 iGot。
在首次使用该解决方案时,需要进行一些初步设置。让我通过一个实际案例来引导您开始使用。
打开 iGot 笔记本并安装必要的库 点击 此链接 打开笔记本并运行首个单元格以安装必要的库。大约需要 5 分钟。
如果系统提示您重启笔记本,请直接忽略。无需重启。
如果一切按计划运行,您将看到“所有库已安装!”的消息。
获取 Hugging 用户访问令牌和模型访问权限 (此步骤仅在首次运行笔记本时需要)
为了运行 Gemma 和 punctuate-all 模型,我们将从 Hugging Face 下载权重文件。为此,您必须申请一个用户令牌并获取模型访问权限。
为此,您需要创建一个 Hugging Face 账户,并遵循以下步骤获取具有读取权限的令牌。
一旦您获得了令牌,复制它并返回到实验笔记本。进入“Secrets”选项卡,然后点击“Add new secret”。
将您的令牌命名为 HF_TOKEN,并粘贴您从 Hugging Face 获得的密钥。
随后,点击此链接打开 Hugging Face 上的 Gemma 模型。接着点击“同意许可”以获取模型访问权限。
发送访谈
要将访谈发送到 iGot,您需先将其作为非公开的 YouTube 视频上传。为了本教程的目的,我从 Andrej Karpathy 与 Lex Fridman 的访谈中选取了一部分,并上传至我的账户。这是 Andrej 给机器学习新手的一些建议片段。
之后,您需获取视频的链接,将其粘贴到Interview Selection笔记本单元格的video_url字段中,设定一个名称,并标明视频中的语言。
一旦运行该单元,您将收到一条消息,告知音频文件已创建。
模型选择与执行
在下一个单元中,您可以挑选打算用于转录的 Whisper 模型的尺寸。模型越大,转录准确性越高。
默认情况下,选用的是最大的模型。做出选择后,运行该单元。
然后,运行模型执行单元,执行前一部分展示的模型流程。如果一切正常,您应在最后看到消息“标点符号处理完成!”。
如果您收到提示消息,询问是否允许访问 Hugging Face 令牌,请给予访问权限。
配置转录输出
最后一步是将转录保存到 Google Docs 文件中。为此,您需指定文件路径,提供访谈名称,并表明是否希望 Gemma 概述会议内容。
首次运行该单元时,您可能会收到一条提示消息,询问是否允许访问您的 Google Drive。点击“同意”。
然后,赋予 Colab 完全访问您的 Google Drive 工作区的权限。
如果一切顺利,您将看到一个指向 Google Docs 文件的链接。只需点击它,即可查看您的访谈转录。
从生成的文档中提取见解
最终文档将包括转录内容,每个短句都与视频中开始的时间点相对应。由于 YouTube 不提供演讲者元数据,建议使用 Google Docs 的查找和替换功能,将“Speaker 0”、“Speaker 1”等替换为实际的演讲者姓名。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/931431f03c01af159f04973515555704.png
作者提供的图片
有了这项功能,你可以处理高亮、笔记和反馈等内容。正如最初设想的那样:
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/08bd85c364d8aa7ff383f3237f763ad0.png
作者提供的图片
最终的反思
该工具目前处于首个版本,我打算将其发展成一个更加用户友好的方案。或许会建立一个网站,使用户无需直接与笔记本互动,或者开发一个插件,以便在 Google Meets 和 Zoom 会议中使用。
这个项目的首要目标是打造一个高质量的会议转录工具,不仅能帮助他人,还能展示现有开源工具如何媲美商业解决方案。
希望你认为它有帮助!如果你有任何建议或对 iGot 的未来发展感兴趣,欢迎随时通过 LinkedIn 与我联系。


雷达卡


京公网安备 11010802022788号







