从 AWS Marketplace 开始使用 AssemblyAI 的语音转文本模型构建语音智能

语音智能和语音转文本 (STT) 技术已变得至关重要,因为组织每天收集数千小时的电话、会议和客户互动。仅靠原始音频并不能推动决策 - 组织需要智能来大规模地从语音数据中提取价值。语音智能结合了语音识别、自然语言处理 (NLP) 和机器学习 (ML),将语音数据转化为可作的见解。现代 STT 模型可以准确地转录对话,并与其他工具配合使用来分析情绪、检测关键主题并生成自动摘要以获得更深入的见解。语音智能和 STT 技术服务于多个行业使用案例,包括呼叫分析和对话智能、医疗保健文档、客户服务、视频内容优化、法律发现和合规性、销售智能和辅导等。随着生成式 AI 和改进模型的出现,这些应用程序对有效 STT 模型的需求持续增长。

AssemblyAI 是 AWS Marketplace 中的独立软件供应商 (ISV),是一家研究型组织,致力于为全世界推进语音 AI 技术并使其大众化。他们成立于 2017 年,建立了一支由跨学科研究领导者、科学家和工程师组成的团队,致力于创建超人语音 AI 模型,为语音数据应用解锁新的可能性。 AssemblyAI 技术通过简单、对开发人员友好的 API 为全球成千上万的客户和数十万开发人员提供服务。AssemblyAI 提供全面的语音 AI 功能,包括:

  • 核心语音到文本转录
  • 扬声器检测
  • 自动语言检测
  • 情绪分析
  • 章节检测
  • 个人身份信息 (PII) 修订

Universal-2 模型展示了 AssemblyAI 致力于突破语音 AI 可能性的界限。此模型通过解决语音识别中的关键挑战、提高正确的名词准确性、格式和大小写以及时间戳生成来实现高准确性。AssemblyAI 采用以研究为中心的方法来构建准确、功能强大的语音 AI 模型,这些模型易于集成。 本文展示了如何从 AWS Marketplace 开始使用 AssemblyAI 的 API,并通过几个步骤调用这些模型 API 来构建初始概念验证 (POC)。


解决方案概述

AssemblyAI 的语音转文本服务通过两阶段管道处理音频。第一阶段使用 Universal-2 自动语音识别 (ASR) 模型,这是一个 600M 参数的 Conformer RNN-T 模型,基于 12.5M 小时的多语言音频数据进行训练。此模型将语音转换为文本,同时处理多个说话人、口音和背景噪音。第二阶段采用神经模型进行文本格式化,处理标点符号、大写和文本规范化等任务,以生成干净、可读的转录文本。 除了基本转录之外,客户还可以启用与核心 ASR 流程一起运行的其他智能模型。其中包括用于跟踪谁说了什么的说话人识别、用于了解情感背景的情绪分析、用于自动对对话进行分类的主题检测、用于提取关键点的内容摘要以及用于维护隐私合规性的 PII 编辑。所有这些模型都通过相同的 API 接口无缝地协同工作。下图显示了高级体系结构。 

 图 1:AssemblyAI 的 API 转录的高级架构图

先决条件

在开始之前,请确保您满足以下先决条件:

  1. 一个有权访问 Amazon Simple Storage Service (Amazon S3) 的 Amazon Web Services (AWS) 账户。
  2. AssemblyAI 的 API 可以在 AWS Marketplace 中购买。您还可以访问 AssemblyAI 的网站以申请试用帐户。对于试用账户,该账户预加载了一些积分,客户可以立即将其用于 POC 测试。
  3. 使用 AssemblyAI 成功创建帐户后,请确保将 API 密钥保存在安全的地方。
  4. 执行以下 Python 代码,为解决方案演练中的场景做好准备:

!pip install assemblyai

import assemblyai as aai

aai.settings.api_key = "xxxxxxxx" #your AssemblyAI API key 

解决方案演练

在本节中,我们将深入探讨 AssemblyAI 的 API 可以找到高价值的五种情况。每个案例都附带一个代码片段,读者可以在自己的环境中进行测试。

  1. 从本地文件转录音频
  2. 从 Amazon S3 转录音频文件
  3. 说话人分类
  4. 自动语言检测
  5. PII 修订

从本地文件转录音频 这是音频文件驻留在执行代码的本地存储库中的基本设置。AssemblyAI API 支持最常见的音频和视频文件格式,例如 mp3、m4a、m4p、wav 或 wma。建议您的音频文件采用其本机格式,而无需进行额外的转码或文件转换。有关音频文件格式的更详细讨论,请参阅此 AssemblyAI 博客。从 AssemblyAI 托管的网站下载公开可用的音频文件,并将其保存到本地文件夹。执行以下代码片段以执行转录: 

# Transcribe an audio from a local audio file 

transcriber = aai.Transcriber()

transcript = transcriber.transcribe("./Audios/ford_clip_trimmed.mp3")

print(transcript.text) 


结果应类似于以下转录:

晚上好。去年 1 月 15 日,我向你们的国会参议员和众议员提出了一项使我们的国家独立于外国能源的全面计划。到 1985 年。这样的计划早就应该了。我们越来越受他人摆布,因为我们整个经济所依赖的燃料。以下是不会消失的事实和数据。美国目前约 37% 的石油需求依赖外国来源。10 年后,如果我们什么都不做,我们将以别人确定的价格进口超过一半的石油,如果他们选择卖给我们的话。两年半后,我们受外国石油禁运的影响将是两个冬天前的两倍。我们现在每年为外国石油支付 250 亿美元。五年前,我们每年只支付 30 亿美元。五年后,如果我们什么都不做,谁知道还会有多少数十亿人从美国流出。

从 Amazon S3 转录音频文件

在许多组织中,音频数据保存在云存储中,例如 Amazon S3。要从 S3 存储桶转录音频文件,AssemblyAI 需要临时访问该文件。要提供此访问权限,您需要生成一个预签名 URL,该 URL 内置了临时访问权限。有关如何生成预签名 URL 的更多详细信息,请参阅使用预签名 URL 共享对象。

执行以下代码片段以执行转录:

import requests

import time

p_url = "S3 pre-signed url"

assembly_key = "xxxxxxxx" #your AssemblyAI API

# Use your AssemblyAI API Key for authorization.

headers = {"authorization": assembly_key, "content-type": "application/json"}

# Specify AssemblyAI's transcription API endpoint.

upload_endpoint = "https://api.assemblyai.com/v2/transcript" 

# Use the presigned URL as the `audio_url` in the POST request. 

json = {"audio_url": p_url} 

# Queue the audio file for transcription with a POST request. 

post_response = requests.post(upload_endpoint, json=json, headers=headers)

# Specify the endpoint of the transaction. 

get_endpoint = upload_endpoint + "/" + post_response.json()["id"] 

# GET request the transcription.</p><p>get_response = requests.get(get_endpoint, headers=headers) 

# If the transcription has not finished, wait util it has.

while get_response.json()["status"] != "completed":

  get_response = requests.get(get_endpoint, headers=headers)

  time.sleep(5)

# Once the transcription is complete, print it out.

print(get_response.json()["text"])

说话人分类

说话人分类是音频中的一个重要组成部分,因为它解决了确定说话人身份以及他们在录音中说话时间的挑战。此功能对于各种任务都至关重要,例如提高转录文本的清晰度和结构、启用高级分析以及启用个性化和自定义。

Speaker diarization

Speaker diarization is a critical component in audio because it addresses the challenge of establishing the identity of speakers and when they spoke in an audio recording. This capability is essential for a wide range of tasks such as enhancing clarity and structure in transcripts, enabling advanced analytics, and enabling personalization and customization.

执行以下代码片段以执行转录:

config = aai.TranscriptionConfig(speaker_labels=True)

transcriber = aai.Transcriber(config=config)

FILE_URL = "https://github.com/AssemblyAI-Examples/audio-examples/raw/main/20230607_me_canadian_wildfires.mp3"

transcript = transcriber.transcribe(FILE_URL)

# Extract all utterances from the response

utterances = transcript.utterances 

# For each utterance, print its speaker and what was said 

for utterance in utterances:

  speaker = utterance.speaker

  text = utterance.text

  print(f"Speaker {speaker}: {text}") 

 以下脚本显示了此示例的部分结果:

演讲者 A:加拿大数百场野火产生的烟雾正在触发美国各地的空气质量警报从缅因州到马里兰州再到明尼苏达州的天际线都是灰色和烟雾缭绕的。在一些地方,空气质量警告包括待在室内的警告。我们想更好地了解这里发生的事情以及原因,因此我们致电约翰霍普金斯大学环境健康与工程系的副教授 Peter DeCarlo。早上好,教授。

发言者 B:早上好。

演讲者 A:那么,现在的情况是什么导致这一轮野火影响了这么多遥远的人?

发言者 B:嗯,有几件事。这个季节已经相当干燥了,然后我们在美国受到打击的事实是,有几个天气系统基本上是将加拿大野火的烟雾通过宾夕法尼亚州引导到大西洋中部和东北部,然后只是在那里投放烟雾。

演讲者 A:那么,这种雾霾中是什么让它有害呢?我假设它是有害的。

注:因版权问题,(自动语言检测 PII 修订)请浏览官方原稿

从 AWS Marketplace 开始使用 AssemblyAI 的语音转文本模型构建语音智能 |AWS 市场https://aws.amazon.com/cn/blogs/awsmarketplace/start-building-voice-intelligence-with-assemblyais-speech-to-text-model-from-aws-marketplace/

结论

AssemblyAI 致力于为开发人员构建一个高质量的 API 平台,以使用 AI 转换和理解语音数据,从而创造创新的产品和服务。他们的语音转文本模型解决了关键的转录挑战。AssemblyAI 最新的 Universal-2 模型专注于解决影响现实世界语音 AI 工作流程的最后一英里问题,例如提高字母数字和生僻词的准确性。

注册AWS账号:

AWS云服务器:中国企业出海的“全球化加速器”,为何成为海外业务首选?https://mp.weixin.qq.com/s/m7lGmI02munGklnZVKdl6w

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/904342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android组件化 -> Debug模式下,本地构建module模块的AAR和APK

本地构建module模块的AAR gradle.properties isCommonApp false模块的build.gradle apply plugin: com.android.library&#xff1a;module模块编译manifest.srcFile src/main/AndroidManifest.xml&#xff1a;读取没有启动App和Activity的配置文件 if (isCommonApp.toBoo…

FlexibleButton:一个轻巧灵活的按键处理库,让你的按键处理更简单

在嵌入式系统开发中&#xff0c;按键输入处理是一个常见且重要的环节。然而&#xff0c;许多开发者在处理按键时&#xff0c;往往会遇到按键消抖、组合按键、长按/短按等功能实现的复杂性。如何在保证系统高效运行的同时&#xff0c;简化按键事件的处理呢&#xff1f; 今天&…

探索程序员薪资背后的秘密与未来:智能化工具如何助力职场发展

最新接入DeepSeek-V3模型&#xff0c;点击下载最新版本InsCode AI IDE 探索程序员薪资背后的秘密与未来&#xff1a;智能化工具如何助力职场发展 引言 在当今数字化时代&#xff0c;程序员作为科技发展的核心力量&#xff0c;其职业前景和薪资水平备受关注。随着人工智能和自…

【STM32单片机】#14 PWR电源控制

主要参考学习资料&#xff1a; B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接&#xff1a;https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装&#xff1a;STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 目录 PWR…

第十五届蓝桥杯单片机国赛-串口解析

串口通信像是蓝桥杯单片机组国赛中一个若隐若现的秘境&#xff0c;总在不经意间为勇者们敞开大门。然而&#xff0c;初次探索这片领域的冒险者&#xff0c;常常会被其神秘莫测的特性所震慑&#xff0c;黯然退场&#xff08;编不下去了&#xff0c;直接进入正题&#xff09;。 附…

深入探索 51 单片机:从入门到实践的全面指南

深入探索 51 单片机&#xff1a;从入门到实践的全面指南 一、引言 在嵌入式系统发展的漫长历程中&#xff0c;51 单片机犹如一颗璀璨的明星&#xff0c;虽然诞生已有数十年&#xff0c;但至今仍在众多领域发挥着重要作用。它以结构简单、易于学习、成本低廉等优势&#xff0c…

GD32F470+CH395Q

第一步&#xff1a;资料下载 以太网协议栈芯片 CH395 - 南京沁恒微电子股份有限公司 第二步&#xff1a;准备工程 &#xff08;1&#xff09; 首先准备一个编译无报错、可以正常打印和延时的工程文件&#xff0c;官方例程采用STM32F1芯片&#xff0c;但本文采用GD32F470芯片 …

Linux 怎么使用局域网内电脑的网络访问外部

一次性 export http_proxy"http://192.168.0.188:7890" export https_proxy"http://192.168.0.188:7890"一直生效 写入 ~/.bashrc&#xff08;或 ~/.bash_profile&#xff09; nano ~/.bashrc加入这一行&#xff1a; export http_proxy"http://19…

Mysql进阶篇1_存储引擎、索引、SQL性能分析指令

文章目录 1.存储引擎InnoDBMyISAMMemory存储引擎选择和对比 2.索引索引结构索引分类索引语法索引使用&#xff08;建议看完第3节后观看&#xff09;&#xff01;&#xff01;&#xff01;mysql如何使用索引查询数据&#xff08;个人理解&#xff09; 3.SQL性能分析SQL执行频率慢…

LeetCode 热题 100 118. 杨辉三角

LeetCode 热题 100 | 118. 杨辉三角 大家好&#xff0c;今天我们来解决一道经典的算法题——杨辉三角。这道题在 LeetCode 上被标记为简单难度&#xff0c;要求生成杨辉三角的前 numRows 行。杨辉三角是一个经典的组合数学问题&#xff0c;每一行的数字都是其正上方和正左上方…

修改或禁用Cursor的全局搜索默认快捷键

在 Cursor 中&#xff0c;默认情况下 双击 Shift 会打开 全局搜索&#xff08;Quick Open&#xff09;&#xff0c;类似于 VS Code 的 CtrlP 功能。如果你想修改或禁用这个快捷键&#xff0c;可以按照以下步骤操作&#xff1a; 1. 打开快捷键设置 方法 1&#xff1a;按下 Ctrl…

HarmonyOS Device Connector(hdc)

它是为开发人员提供的用于调试的命令行工具&#xff0c;通过该工具可以在windows/linux/mac系统上与设备进行交互。 hdc分为三部分&#xff1a; client&#xff1a;运行在电脑端的进程&#xff0c;开发者在执行hdc命令时启动该进程&#xff0c;命令结束后进程退出。 server&…

开源PDF解析工具Marker深度解析

开源PDF解析工具Marker深度解析 检索增强生成&#xff08;RAG&#xff09;系统的第一步就是做 pdf 解析&#xff0c;从复杂多样的 pdf 中提取出干净准确的文本内容。现有的最优秀的开源工具有两个&#xff1a;Marker 和 MinerU。因为 Marker 是个人开发者做的&#xff0c;文档…

ARM子程序调用与返回

子程序&#xff08;也叫过程、函数、方法&#xff09;是一个能被调用和执行并返回到调用点那条指令的代码 段。 两个问题&#xff1a;如何将参数传递给子程序或从子程序中传递出来&#xff1f;怎么从子程序返回到调用点&#xff1f; 指令BSR Proc_A调用子程序Proc_A。 处理器将…

算力经济模型推演:从中心化到去中心化算力市场的转变(区块链+智能合约的算力交易原型设计)

一、算力经济的历史脉络与范式转移 1.1 中心化算力市场的演进困境 传统算力市场以超算中心、云计算平台为核心载体&#xff0c;其运营模式呈现强中心化特征。中国移动构建的"四算融合"网络虽实现百万级服务器的智能调度&#xff0c;但动态资源分配仍受制于集中式控…

小结: 接口类型和路由优先级

网络接口类型 1. Bridge-if&#xff08;桥接接口&#xff09; 作用&#xff1a;用于桥接网络&#xff0c;将多个接口或VLAN连接为一个广播域&#xff0c;实现二层数据转发。 常用指令&#xff1a; interface bridge-if <number> bridge <bridge-id> # 将接口加入…

mysql一些事

一.联合查询/多表查询 联合查询关键在于笛卡尔积的过程 笛卡尔坐标积的排列组合 首先它会将两个表用排列组合的方式进行排列组合。 表一 表二 进行排列组合 我们发现它的行是 两个表的行相乘&#xff0c;列是两表的列相加。 我们所看到的数据有合理的也有不合理的我们接下…

【工具】Open WebUI:本地化部署的AI交互平台

文章目录 一、Open WebUI 简介二、核心功能详解1. 多模型与多模态支持2. 本地RAG与文档集成3. 开发与定制化能力4. 安全与权限管理5. 用户体验优化 三、安装与部署指南1. 快速安装方式2. 高级配置3. 常见问题 四、实际应用场景1. 个人隐私助手2. 企业知识库3. 学术研究4. 创意工…

AutoGPT

一、简介 是一个基于openAI研发的GPT4模型的一个开源应用程序&#xff0c;根据用户指定的目标&#xff0c;自动生成所需的提示&#xff0c;并且执行需要多个步骤才能完成的项目&#xff0c;整个过程不需要人类干预和指导&#xff08;无监督学习&#xff09;&#xff0c;生成式…

[C++] 小游戏 决战苍穹

大家好&#xff0c;各位看到这个标题&#xff0c;斗破苍穹什么时候改叫决战苍穹了&#xff1f;其实&#xff0c;因为版权等一系列问题&#xff0c;斗破苍穹正式改名为决战苍穹&#xff0c;这个版本主要更新内容为解决了皇冠竞技场太过影响游戏平衡&#xff0c;并且提高了一些装…