转录深蓝音频文件并使用 Anthropic 准备面试问题!
将此笔记本复制到您自己的驱动器中,并按照以下说明操作! 🥳🥳🥳
开始:
运行以下三个单元格将允许您转录任何您想要的音频。下面的注释指出了您可以修改以按需修改输出的变量。
在运行此笔记本之前,您需要一些音频 URL 来进行转录。您可以使用任何您想要的音频文件。
对了,如果您还没有注册 Deepgram,请在此链接查看:https://dpgr.am/prerecorded-notebook-signup
第 1 步:依赖项
运行此单元格以下载所有必需的依赖项。
注意:您可以通过单击左侧的播放按钮或同时单击单元格并按 shift
+ENTER
来运行单元格。(或者在 Mac 上按 shift
+ return
)。
! pip install requests ffmpeg-python
! pip install deepgram-sdk --upgrade
! pip install requests
! pip install anthropic
第 2 步:音频文件 URL
查找托管在服务器上的音频文件,以便您可以使用此笔记本。或者,下面代码中提供了 Deepgram 的示例文件。
# 您已完成第 2 步?👀
# 您在左侧的文件夹中看到您的音频文件了吗?📂
第 3 步:转录
填写以下变量:
DG_KEY
= 您的个人 Deepgram API 密钥AUDIO_FILE_URL
= 您希望转录的音频文件的 URL
现在运行单元格! (Shift
+ Enter
)
对了,如果您已经是 Deepgram 用户,并且在此单元格中遇到错误,最常见的解决方法是:
- 您可能需要更新 deepgram.sdk 的安装。
- 您可能需要检查您的 Deepgram 账户中还剩多少积分。
from deepgram import DeepgramClient, PrerecordedOptions, FileSource
import requests
# Deepgram API 密钥
DG_KEY = "🔑🔑🔑 您的 API 密钥在此! 🔑🔑🔑"
# 音频文件的 URL
AUDIO_FILE_URL = "https://static.deepgram.com/examples/nasa-spacewalk-interview.wav"
# 保存转录 JSON 文件的路径
TRANSCRIPT_FILE = "transcript.json"
def main():
try:
# 第 1 步:使用 API 密钥创建 Deepgram 客户端
deepgram = DeepgramClient(DG_KEY)
# 从 URL 下载音频文件
response = requests.get(AUDIO_FILE_URL)
if response.status_code == 200:
buffer_data = response.content
else:
print("下载音频文件失败")
return
payload: FileSource = {
"buffer": buffer_data,
}
# 第 2 步:配置 Deepgram 选项以进行音频分析
options = PrerecordedOptions(
model="nova-2",
smart_format=True,
)
# 第 3 步:使用文本负载和选项调用 transcribe_file 方法
response = deepgram.listen.prerecorded.v("1").transcribe_file(payload, options)
# 第 4 步:将响应 JSON 写入文件
with open(TRANSCRIPT_FILE, "w") as transcript_file:
transcript_file.write(response.to_json(indent=4))
print("已成功生成转录 JSON 文件。")
except Exception as e:
print(f"异常:{e}")
if __name__ == "__main__":
main()
如果上面的单元格成功运行,您应该会在内容目录中看到 JSON 输出文件。注意:单元格运行完成与 JSON 文件实际出现之间可能会有短暂的延迟。这是正常的。只需等待几分钟让文件出现。
第 4 步:查看您的转录
下面的函数解析输出的 JSON 并打印出您刚刚转录的一个文件的转录内容!(确保 您要检查的文件确实已加载到内容目录中。)
将 OUTPUT
变量设置为您希望查看转录内容的文件名。
然后运行此单元格(Shift
+Enter
)以查看音频的逐句转录!
import json
# 将此变量设置为您希望读取的输出文件的路径
OUTPUT = 'transcript.json'
# JSON 包含丰富的信息,但如果您只想读取
# 转录内容,请运行下面的代码!
def print_transcript(transcription_file):
with open(transcription_file, "r") as file:
data = json.load(file)
result = data['results']['channels'][0]['alternatives'][0]['transcript']
result = result.split('.')
for sentence in result:
print(sentence + '.')
print_transcript(OUTPUT)
如果上面的单元格成功运行,您应该会看到音频转录的纯文本版本。
第 5 步:使用 Anthropic 准备面试问题
现在我们可以将转录内容发送给 Anthropic 进行分析,以帮助我们准备面试问题。运行下面的单元格(Shift
+Enter
)以获取基于您上面的音频转录的 Anthropic 提供的建议面试问题集。
import anthropic
import json
transcription_file = "transcript.json"
# 从 JSON 文件获取转录内容的函数
def get_transcript(transcription_file):
with open(transcription_file, "r") as file:
data = json.load(file)
result = data['results']['channels'][0]['alternatives'][0]['transcript']
return result
# 从 JSON 文件加载转录内容
message_text = get_transcript(transcription_file)
# 初始化 Anthropic API 客户端
client = anthropic.Anthropic(
# 默认为 os.environ.get("ANTHROPIC_API_KEY")
# Anthropic API 密钥
api_key="🔑🔑🔑 您的 API 密钥在此! 🔑🔑🔑"
)
# 准备 API 请求的文本
formatted_messages = [
{
"role": "user",
"content": message_text
}
]
# 生成深思熟虑的开放式面试问题
response = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
temperature=0.5,
system="您的任务是根据给定的上下文生成一系列深思熟虑的开放式面试问题。问题的设计应能引发面试者提出有见地的详细回答,使他们能够展示自己的知识、经验和批判性思维能力。避免是/否问题或有明显答案的问题。相反,应侧重于鼓励反思、自我评估和分享具体示例或轶事的提问。",
messages=formatted_messages
)
# 打印生成的面试问题
# 将每个 TextBlock 的文本连接成一个字符串
content = ''.join(block.text for block in response.content)
# 按 '\n\n' 分割内容
parts = content.split('\n\n')
# 打印每个部分并添加额外的换行符
for part in parts:
print(part)
print('\n')
如果此单元格成功运行,您应该会看到一个基于您原始音频文件的面试问题列表。现在您可以转录 Deepgram 的音频并使用 Anthropic 获取一套面试问题。