Untitled
unknown
plain_text
10 months ago
2.0 kB
14
Indexable
import json
def elevenlabs_to_deepgram(elevenlabs_path, deepgram_out_path):
with open(elevenlabs_path, "r", encoding="utf-8") as f:
eleven_data = json.load(f)
transcript_parts = []
words_out = []
paragraphs_out = []
for seg in eleven_data.get("segments", []):
text = seg.get("text", "").strip()
start = seg.get("start_time")
end = seg.get("end_time")
speaker = seg.get("speaker", {}).get("id", "unknown")
# Add transcript text
transcript_parts.append(text)
# Build sentences (Deepgram style)
sentence = {
"text": text,
"start": start,
"end": end
}
# Build paragraph entry
paragraph = {
"speaker": speaker,
"start": start,
"end": end,
"text": text,
"sentences": [sentence]
}
paragraphs_out.append(paragraph)
# Build word-level entries
for w in seg.get("words", []):
words_out.append({
"word": w["text"],
"start": w["start_time"],
"end": w["end_time"],
"speaker": speaker,
"confidence": 1.0,
"punctuated_word": w["text"]
})
# Assemble Deepgram-style JSON
deepgram_data = {
"results": {
"channels": [
{
"alternatives": [
{
"transcript": " ".join(transcript_parts),
"words": words_out,
"paragraphs": paragraphs_out
}
]
}
]
}
}
with open(deepgram_out_path, "w", encoding="utf-8") as f:
json.dump(deepgram_data, f, ensure_ascii=False, indent=2)
print(f"Converted file saved to {deepgram_out_path}")
# Example usage:
# elevenlabs_to_deepgram("elevenlabs.json", "deepgram_converted.json")Editor is loading...
Leave a Comment