Bases: BaseReader
用于AssemblyAI音频转录的阅读器。
它使用AssemblyAI API来转录音频文件,并将转录的文本加载到一个或多个文档中,具体取决于指定的格式。
要使用该功能,您应该已安装assemblyai
python包,并且设置了环境变量ASSEMBLYAI_API_KEY
为您的API密钥。
或者,API密钥也可以作为参数传递。
音频文件可以通过URL或本地文件路径指定。
Source code in llama_index/readers/assemblyai/base.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 | class AssemblyAIAudioTranscriptReader(BaseReader):
"""用于AssemblyAI音频转录的阅读器。
它使用AssemblyAI API来转录音频文件,并将转录的文本加载到一个或多个文档中,具体取决于指定的格式。
要使用该功能,您应该已安装``assemblyai`` python包,并且设置了环境变量``ASSEMBLYAI_API_KEY``为您的API密钥。
或者,API密钥也可以作为参数传递。
音频文件可以通过URL或本地文件路径指定。
"""
def __init__(
self,
file_path: str,
*,
transcript_format: TranscriptFormat = TranscriptFormat.TEXT,
config: Optional[assemblyai.TranscriptionConfig] = None,
api_key: Optional[str] = None,
):
"""初始化AssemblyAI AudioTranscriptReader。
Args:
file_path: URL或本地文件路径。
transcript_format: 要使用的转录格式。
有关更多信息,请参见类“TranscriptFormat”。
config: 转录选项和功能。如果给定“None”,
将使用Transcriber的默认配置。
api_key: AssemblyAI API密钥。
"""
if api_key is not None:
assemblyai.settings.api_key = api_key
self.file_path = file_path
self.transcript_format = transcript_format
# Instantiating the Transcriber will raise a ValueError if no API key is set.
self.transcriber = assemblyai.Transcriber(config=config)
def load_data(self) -> List[Document]:
"""将音频文件转录并加载转录内容到文档中。
它使用AssemblyAI API来转录音频文件,并在转录完成前阻塞。
"""
transcript = self.transcriber.transcribe(self.file_path)
if transcript.error:
raise ValueError(f"Could not transcribe file: {transcript.error}")
if self.transcript_format == TranscriptFormat.TEXT:
return [Document(text=transcript.text, metadata=transcript.json_response)]
elif self.transcript_format == TranscriptFormat.SENTENCES:
sentences = transcript.get_sentences()
return [
Document(text=s.text, metadata=s.dict(exclude={"text"}))
for s in sentences
]
elif self.transcript_format == TranscriptFormat.PARAGRAPHS:
paragraphs = transcript.get_paragraphs()
return [
Document(text=p.text, metadata=p.dict(exclude={"text"}))
for p in paragraphs
]
elif self.transcript_format == TranscriptFormat.SUBTITLES_SRT:
return [Document(text=transcript.export_subtitles_srt())]
elif self.transcript_format == TranscriptFormat.SUBTITLES_VTT:
return [Document(text=transcript.export_subtitles_vtt())]
else:
raise ValueError("Unknown transcript format.")
|
load_data
将音频文件转录并加载转录内容到文档中。
它使用AssemblyAI API来转录音频文件,并在转录完成前阻塞。
Source code in llama_index/readers/assemblyai/base.py
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 | def load_data(self) -> List[Document]:
"""将音频文件转录并加载转录内容到文档中。
它使用AssemblyAI API来转录音频文件,并在转录完成前阻塞。
"""
transcript = self.transcriber.transcribe(self.file_path)
if transcript.error:
raise ValueError(f"Could not transcribe file: {transcript.error}")
if self.transcript_format == TranscriptFormat.TEXT:
return [Document(text=transcript.text, metadata=transcript.json_response)]
elif self.transcript_format == TranscriptFormat.SENTENCES:
sentences = transcript.get_sentences()
return [
Document(text=s.text, metadata=s.dict(exclude={"text"}))
for s in sentences
]
elif self.transcript_format == TranscriptFormat.PARAGRAPHS:
paragraphs = transcript.get_paragraphs()
return [
Document(text=p.text, metadata=p.dict(exclude={"text"}))
for p in paragraphs
]
elif self.transcript_format == TranscriptFormat.SUBTITLES_SRT:
return [Document(text=transcript.export_subtitles_srt())]
elif self.transcript_format == TranscriptFormat.SUBTITLES_VTT:
return [Document(text=transcript.export_subtitles_vtt())]
else:
raise ValueError("Unknown transcript format.")
|