Untitled

 avatar
unknown
plain_text
a year 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