Deepgram
扫码查看

提供实时语音转文本的AI模型

Deepgram

综合介绍

Deepgram是一家人工智能公司,其核心业务是为开发者提供语音转文本(Speech-to-Text)的API服务。 它利用深度学习模型,将实时的音频流或者预先录制的音频文件快速、准确地转换成文字。 这项技术不仅仅是简单的听写,它还包含了一系列“音频智能”功能,比如能够自动为转写内容生成摘要、分析说话者的情绪、检测讨论的主题等。 开发者可以通过其API,将这些先进的语音识别和理解功能集成到自己的应用程序或服务中。 Deepgram的目标是让机器能够理解人类的语言,其提供的模型支持多种语言和方言,并且能够在有背景噪音的环境下保持较高的准确率。

功能列表

  • 实时语音转录:支持将实时音频流(如来自麦克风的输入)即时转换为文字,延迟极低。
  • 预录制音频转录:可以快速处理已有的音频文件,官方宣称转录一小时时长的音频仅需约12秒。
  • 高准确度的AI模型:提供多种AI模型,如Nova-2,在准确性、速度和成本效益方面表现优越。
  • 音频智能分析:除了基础的文字转录,API还提供多项高级分析功能:
    • 内容摘要(Summarization):自动为长段对话生成简短的摘要。
    • 情绪分析(Sentiment Analysis):识别和分析音频中说话者的情绪。
    • 主题检测(Topic Detection):自动识别对话内容涉及的主要话题。
    • 意图检测(Intent Detection):分析用户的意图。
  • 多语言支持:支持超过30种语言和方言的转录。
  • 说话人分离(Diarization):能够在一份音频中区分出不同的说话人,并在文本中进行标注。
  • 自定义词汇(Custom Vocabulary):允许用户添加特定的专业术语、产品名称或人名,以提高这些词汇的识别准确率。
  • 文本自动格式化:自动对转录出的文本进行格式美化,例如添加标点符号、将数字和日期转换为标准格式等。

使用帮助

Deepgram为开发者提供了强大的语音转文本API,上手使用非常直接。以下是详细的使用步骤和功能操作介绍。

第一步:注册并获取API密钥

要使用Deepgram的服务,首先需要一个API密钥。

  1. 访问Deepgram的官方网站 https://deepgram.com/
  2. 点击注册按钮(通常是“Sign Up”或“Get Started for Free”)。新用户通常会获得一定额度的免费信用点数,用于测试和开发,无需绑定信用卡。
  3. 完成注册后,登录到你的账户控制台(Dashboard)。
  4. 在控制台的“API Keys”部分,你可以找到系统为你生成的默认API密钥,或者你也可以创建一个新的密钥。这个密钥是之后所有API请求的身份凭证,请妥善保管。

第二步:安装Deepgram的开发工具包(SDK)

为了方便开发者集成,Deepgram官方提供了多种编程语言的SDK,例如Python和Node.js。

对于Python开发者:你可以使用pip来安装Deepgram的Python SDK。打开你的终端或命令行工具,输入以下命令:

pip install deepgram-sdk

对于Node.js开发者:你可以使用npm来安装相应的SDK:

npm install @deepgram/sdk

第三-步:如何转录预先录制的音频文件

这是最常见的用法,比如转录会议录音、采访音频或播客节目。

使用Python SDK的示例:下面这段代码演示了如何使用Python转录一个存储在网络上的音频文件。

import os
from dotenv import load_dotenv
from deepgram import DeepgramClient, PrerecordedOptions, FileSource
# 加载环境变量(推荐将API密钥存储在.env文件中)
load_dotenv()
# 你的Deepgram API密钥
API_KEY = os.getenv("DEEPGRAM_API_KEY")
# 要转录的音频文件URL
AUDIO_URL = "https://static.deepgram.com/examples/interview_speech-analytics.wav"
def main():
try:
# 1. 初始化Deepgram客户端
deepgram = DeepgramClient(API_KEY)
# 2. 准备请求源数据
payload: FileSource = {
"url": AUDIO_URL,
}
# 3. 配置转录选项
options = PrerecordedOptions(
model="nova-2",      # 选择一个模型,nova-2是功能强大的模型
smart_format=True,   # 启用智能格式化,自动添加标点等
summarize="v2",      # 启用内容摘要功能
diarize=True,        # 启用说话人分离功能
)
# 4. 发送API请求
print("正在请求转录...")
response = deepgram.listen.prerecorded.v("1").transcribe_file(payload, options)
# 5. 处理并打印结果
transcript = response.results.channels[0].alternatives[0].transcript
summary = response.results.summary.short
print("\n--- 完整转录文本 ---\n")
print(transcript)
print("\n--- 内容摘要 ---\n")
print(summary)
except Exception as e:
print(f"发生错误: {e}")
if __name__ == "__main__":
main()

代码解释:

  1. DeepgramClient(API_KEY): 使用你的API密钥创建一个客户端实例。
  2. payload: 指定你要转录的音频来源。除了URL,你也可以转录本地文件。
  3. PrerecordedOptions: 这是配置转录参数的地方。在这个例子中,我们启用了智能格式化 (smart_format)、内容摘要 (summarize) 和说话人分离 (diarize)。你可以根据需求开启或关闭这些功能。
  4. transcribe_file: 这是发起转录请求的核心方法。
  5. response: API返回的结果是一个JSON对象,包含了详细的转录信息。完整的文本在results.channels[0].alternatives[0].transcript路径下。如果开启了摘要,摘要内容在results.summary.short中。

第四步:如何进行实时语音转录

实时转录适用于需要即时反馈的应用,如语音助手、实时会议字幕等。这通常通过WebSocket协议实现。

使用Python SDK的实时转录概念:

import asyncio
from dotenv import load_dotenv
import os
from deepgram import DeepgramClient, LiveTranscriptionEvents, LiveOptions
load_dotenv()
API_KEY = os.getenv("DEEPGRAM_API_KEY")
class TranscriptCollector:
def __init__(self):
self.transcript_parts = []
self.final_transcript_printed = False
def on_message(self, _, transcript, **kwargs):
# 这个函数会在收到最终转录结果时被调用
if transcript.is_final:
self.transcript_parts.append(transcript.channel.alternatives[0].transcript)
# 只有当这是最后一个is_final消息时才打印
if transcript.speech_final and not self.final_transcript_printed:
full_transcript = " ".join(self.transcript_parts)
print(f"最终转录结果: {full_transcript}")
self.final_transcript_printed = True
def on_error(self, _, error, **kwargs):
print(f"发生错误: {error}")
async def main():
try:
# 初始化Deepgram客户端
deepgram = DeepgramClient(API_KEY)
# 创建到Deepgram的实时连接
dg_connection = deepgram.listen.asynclive.v("1")
transcript_collector = TranscriptCollector()
# 注册事件监听器
dg_connection.on(LiveTranscriptionEvents.Transcript, transcript_collector.on_message)
dg_connection.on(LiveTranscriptionEvents.Error, transcript_collector.on_error)
# 配置实时转录选项
options = LiveOptions(model="nova-2", language="en-US", smart_format=True)
await dg_connection.start(options)
# 在这里,你需要一个机制来从麦克风或其他来源获取实时音频数据块,
# 并通过 dg_connection.send(data) 发送出去。
# 此处为示意,实际应用需要实现音频流的捕获。
print("连接已建立,请开始说话...")
# 伪代码:模拟发送音频流
# for audio_chunk in audio_stream:
#     await dg_connection.send(audio_chunk)
# 保持连接直到完成
# await asyncio.sleep(30) # 示例:监听30秒
# 结束连接
await dg_connection.finish()
except Exception as e:
print(f"无法连接到Deepgram: {e}")
# if __name__ == "__main__":
#     asyncio.run(main()) # 取消注释以运行

代码解释:

  1. 实时转录使用asynclive模式,基于asyncio库。
  2. 你需要定义事件处理函数,on_message用于处理收到的转录结果,on_error处理错误。Deepgram会持续发回临时的和最终的(is_final)转录片段。
  3. dg_connection.start(options) 建立连接,之后你就可以通过dg_connection.send()持续发送音频数据了。
  4. 这是一个异步过程,非常适合需要低延迟交互的应用。

应用场景

  1. 呼叫中心分析将客户与客服的通话实时转为文本,然后利用情绪分析、主题检测等功能,自动评估服务质量、识别客户意图和痛点,从而改善客户体验。
  2. 媒体内容转录与字幕生成快速为播客、采访、在线课程和视频内容生成准确的文字稿和字幕。这不仅让内容更容易被搜索引擎索引,也方便了听障人士的访问。
  3. 会议记录与协作自动转录会议内容,并通过说话人分离功能区分每个人的发言,生成结构清晰的会议纪要,省去手动整理的麻烦。
  4. 语音助手与智能设备作为语音控制应用(如智能家居、车载系统)的“耳朵”,将用户的语音指令准确地转换为可执行的文本命令。
  5. 医疗文书记录帮助医生通过口述记录病患的诊疗信息,自动生成电子病历,减轻医生的文书工作负担。

QA

  1. Deepgram是什么?Deepgram是一家人工智能公司,它提供一个API平台,核心功能是将语音转换为文本。开发者可以用它来为自己的应用增加语音识别能力。
  2. Deepgram的转录准确率如何?Deepgram以其高准确性而闻名。它使用先进的深度学习模型,这些模型在处理各种口音、方言以及有背景噪音的音频时都表现得很好。
  3. 开始使用Deepgram需要付费吗?不需要。Deepgram为新注册的用户提供价值200美元的免费积分,这足够用来转录数百小时的音频,让开发者在决定付费前可以充分测试其所有功能。
  4. Deepgram支持哪些语言?Deepgram支持超过30种语言和方言,包括英语、西班牙语、中文(普通话)、印地语、法语、德语等多种主流语言。
  5. 相比其他服务,Deepgram的主要优势是什么?它的主要优势在于速度、准确性和成本效益的结合。它不仅转录速度非常快(实时和预录制音频处理都很快),而且在保持高准确率的同时,提供了多种先进的音频分析功能,性价比很高。
微信微博Email复制链接