Deepgram Python SDK
Deepgram 的官方 Python SDK。使用世界级的语音和语言 AI 模型为您的应用程序赋能。
文档
您可以在 developers.deepgram.com 了解更多关于 Deepgram API 的信息。
获取 API 密钥
🔑 要访问 Deepgram API,您需要一个免费的 Deepgram API 密钥。
要求
Python(版本 ^3.10)
安装
要安装最新可用版本(随时间保证变更):
pip install deepgram-sdk
如果您要编写应用程序来使用此 SDK,强烈建议并且作为编程常规做法,至少将 SDK 固定到一个主要版本(即 ==2.*
)或者经过充分考虑,固定到次要版本和/或特定版本(分别为 ==2.1.*
或 ==2.12.0
)。如果您不熟悉语义版本控制或 semver,这是必读的内容。
在 requirements.txt
文件中,固定到主要(或次要)版本,例如如果您想坚持使用 SDK v2.12.0
版本,可以这样做:
deepgram-sdk==2.*
或者使用 pip:
pip install deepgram-sdk==2.*
在 requirements.txt
文件中固定到特定版本可以这样做:
deepgram-sdk==2.12.0
或者使用 pip:
pip install deepgram-sdk==2.12.0
我们保证在给定的主要语义版本(即 2.*
版本)中主要接口不会发生破坏性变化。然而,从 2.*
到 3.*
主要版本的升级则不作保证。这遵循标准的语义版本控制最佳实践。
快速入门
本 SDK 旨在降低复杂性,并抽象/隐藏一些客户端不需要了解的 Deepgram 内部细节。但是,如果需要,您仍然可以调整选项和设置。
预录音频转写快速入门
您可以在我们的文档网站上找到详细教程。可以使用以下示例代码进行预录音频转写:
AUDIO_URL = {
"url": "https://static.deepgram.com/examples/Bueller-Life-moves-pretty-fast.wav"
}
## 步骤 1 使用环境变量中的 API 密钥创建 Deepgram 客户端
deepgram: DeepgramClient = DeepgramClient("", ClientOptionsFromEnv())
## 步骤 2 在预录类上调用 transcribe_url 方法
options: PrerecordedOptions = PrerecordedOptions(
model="nova-2",
smart_format=True,
)
response = deepgram.listen.rest.v("1").transcribe_url(AUDIO_URL, options)
print(f"response: {response}\n\n")
实时音频转写快速入门
你可以在我们的文档网站上找到操作指南。实时音频转录可以使用以下示例代码完成:
deepgram: DeepgramClient = DeepgramClient()
dg_connection = deepgram.listen.websocket.v("1")
def on_open(self, open, **kwargs):
print(f"\n\n{open}\n\n")
def on_message(self, result, **kwargs):
sentence = result.channel.alternatives[0].transcript
if len(sentence) == 0:
return
print(f"speaker: {sentence}")
def on_metadata(self, metadata, **kwargs):
print(f"\n\n{metadata}\n\n")
def on_speech_started(self, speech_started, **kwargs):
print(f"\n\n{speech_started}\n\n")
def on_utterance_end(self, utterance_end, **kwargs):
print(f"\n\n{utterance_end}\n\n")
def on_error(self, error, **kwargs):
print(f"\n\n{error}\n\n")
def on_close(self, close, **kwargs):
print(f"\n\n{close}\n\n")
dg_connection.on(LiveTranscriptionEvents.Open, on_open)
dg_connection.on(LiveTranscriptionEvents.Transcript, on_message)
dg_connection.on(LiveTranscriptionEvents.Metadata, on_metadata)
dg_connection.on(LiveTranscriptionEvents.SpeechStarted, on_speech_started)
dg_connection.on(LiveTranscriptionEvents.UtteranceEnd, on_utterance_end)
dg_connection.on(LiveTranscriptionEvents.Error, on_error)
dg_connection.on(LiveTranscriptionEvents.Close, on_close)
options: LiveOptions = LiveOptions(
model="nova-2",
punctuate=True,
language="en-US",
encoding="linear16",
channels=1,
sample_rate=16000,
## 要获取UtteranceEnd,必须设置以下内容:
interim_results=True,
utterance_end_ms="1000",
vad_events=True,
)
dg_connection.start(options)
## 创建麦克风
microphone = Microphone(dg_connection.send)
## 启动麦克风
microphone.start()
## 等待直到结束
input("按回车键停止录音...\n\n")
## 等待麦克风关闭
microphone.finish()
## 表示我们已完成
dg_connection.finish()
print("已完成")
示例
本SDK中每个API调用都有示例。你可以在这个仓库根目录的examples文件夹中找到所有这些示例。
在运行任何这些示例之前,你需要查看README并安装以下依赖:
pip install -r examples/requirements-examples.txt
文本转语音:
- 异步 - examples/speak
- 同步 - examples/speak
文本分析:
- 意图识别 - examples/analyze/intent
- 情感分析 - examples/sentiment/intent
- 摘要生成 - examples/analyze/intent
- 主题检测 - examples/analyze/intent
预录音频:
- 从音频文件转录 - examples/prerecorded/file
- 从URL转录 - examples/prerecorded/url
- 意图识别 - examples/analyze/intent
- 情感分析 - examples/sentiment/intent
- 摘要生成 - examples/analyze/intent
- 主题检测 - examples/analyze/intent
实时音频转录:
- 从麦克风 - examples/streaming/microphone
- 从HTTP端点 - examples/streaming/http
管理API执行完整的CRUD操作,包括:
- 余额 - examples/manage/balances
- 邀请 - examples/manage/invitations
- 密钥 - examples/manage/keys
- 成员 - examples/manage/members
- 项目 - examples/manage/projects
- 作用域 - examples/manage/scopes
- 使用情况 - examples/manage/usage
要运行每个示例,请将DEEPGRAM_API_KEY
设置为环境变量,然后进入每个示例文件夹并执行示例:go run main.py
。
日志记录
本SDK提供日志记录功能,以便排查和调试遇到的问题。默认情况下,当您按照以下方式初始化库时,SDK将启用Information
级别及更高级别(即Warning
、Error
等)的消息:
deepgram: DeepgramClient = DeepgramClient()
要增加日志输出/详细程度以进行调试或故障排除,您可以使用以下代码设置DEBUG
级别:
config: DeepgramClientOptions = DeepgramClientOptions(
verbose=logging.DEBUG,
)
deepgram: DeepgramClient = DeepgramClient("", config)
向后兼容性
旧版SDK仅接受优先级1(P1)的错误支持。我们会及时解决代码和依赖项中的安全问题。对于没有明确解决方法的重大错误,我们也会优先处理。
开发与贡献
有兴趣贡献代码吗?我们❤️拉取请求!
为确保我们的社区安全对待所有人,请务必查看并同意我们的行为准则。然后查看贡献指南以获取更多信息。
先决条件
为了开发SDK本身的新功能,您首先需要卸载之前安装的deepgram-sdk
,然后安装/pip安装requirements.txt
中包含的依赖项,然后指示python(通过pip)使用本地安装的SDK。
从存储库的根目录,执行以下操作:
pip uninstall deepgram-sdk
pip install -r requirements.txt
pip install -e .
每日测试和单元测试
如果您想使用、运行、贡献或修改每日/单元测试,则需要安装以下依赖项:
pip install -r requirements-dev.txt
每日测试
每日测试会对实际的API端点执行一系列检查,并将结果保存在tests/response_data
文件夹中。这些响应数据每晚更新,以反映服务器的最新响应。运行每日测试需要在环境变量中设置DEEPGRAM_API_KEY
。
要运行每日测试:
make daily-test
单元测试
单元测试使用tests/response_data
中保存的每日测试响应,对模拟端点执行一系列检查。这些测试旨在模拟对端点的请求,而无需实际访问端点;运行单元测试需要在环境变量中设置DEEPGRAM_API_KEY
,但实际上不会访问服务器。
make unit-test
获取帮助
我们很乐意听取您的意见,所以如果您有问题、意见或发现项目中的错误,请告诉我们!您可以: