eQOURSE/multilingual-speech
Multilingual Indian Conversational Speech A dataset of naturalistic, spontaneous two-speaker conversations across 13 Indian languages, with segment-level transcripts, speaker profiles, timestamps, and recording metadata. Designed for ASR, TTS, speaker diarization, and conversational speech research. Languages (13) Assamese, Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Nepali, Odia, Punjabi, Tamil, Telugu, Urdu. Content Conversations… See the full description on the dataset page: https://huggingface.co/datasets/eQOURSE/multilingual-speech.
Multilingual Indian Conversational Speech
A dataset of naturalistic, spontaneous two-speaker conversations across 13 Indian languages, with segment-level transcripts, speaker profiles, timestamps, and recording metadata. Designed for ASR, TTS, speaker diarization, and conversational speech research.
Languages (13)
Assamese, Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Nepali, Odia, Punjabi, Tamil, Telugu, Urdu.
Content
Conversations resemble real-world interactions across multiple domains: Technology / customer support, Financial services, Healthcare, Food & delivery, and Retail & commerce. Speech is conversational and spontaneous — natural turn-taking, code-switching (English mixed with the local language), interruptions, and expressive prosody.
Structure
audio/ full conversation recordings (WAV), one per language
metadata.jsonl segment-level annotations referencing the recordingsEach row is one utterance segment (mostly 1–20 s) that references its source recording in audio/ with start/end timestamps.
Schema
Audio
- Uncompressed WAV, mostly 48 kHz / 16-bit (some 44.1 kHz and 24-bit).
- One full conversation recording per language; segment rows reference offsets within it, so clips can be extracted on demand from
start_seconds/end_seconds.
Notes
- Transcripts include natural English code-switching, common in Indian conversational speech.
- Timestamps normalized to a consistent
HH:MM:SS.mmmformat; a few segments with source timestamp inconsistencies have a null duration. - Speaker attributes (role, gender, age, region, accent) come from the per-recording speaker profile block in the source annotations.
Extracting a segment clip (example)
import soundfile as sf, json
row = json.loads(open("metadata.jsonl").readline())
data, sr = sf.read(row["audio_file"])
clip = data[int(row["start_seconds"]*sr):int(row["end_seconds"]*sr)]
sf.write("segment.wav", clip, sr)