CoolFace
Datasetpublic

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.

sourceHugging Facecc-by-4.0updated 3mo agoView on Hugging Face
0likes93downloads
Dataset Card

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 recordings

Each row is one utterance segment (mostly 1–20 s) that references its source recording in audio/ with start/end timestamps.

Schema

FieldTypeDescription
segment_idstringSegment identifier within a recording (SEG-001).
recording_idstringSource recording ID (REC-ASM-HLT-011).
audio_filestringRelative path to the full recording in audio/.
languagestringLanguage of the conversation.
speaker_idstringSpeaker label (SPK_01, SPK_02).
speaker_rolestringConversational role (Customer, Agent, Pharmacist, ...).
speaker_genderstringSpeaker gender (from speaker profile).
speaker_agestringAge bracket (e.g. Adult (18+)).
speaker_regionstringSpeaker region/location.
accent_dialectstringAccent or dialect description.
start_timestringSegment start (HH:MM:SS.mmm).
end_timestringSegment end (HH:MM:SS.mmm).
start_secondsfloatSegment start in seconds.
end_secondsfloatSegment end in seconds.
duration_secondsfloatSegment duration in seconds.
transcriptstringVerbatim transcript in the native script.
domainstringConversation domain.
collection_methodstringHow the audio was collected.
environment_typestringRecording environment description.
recording_datestringDate of recording.
sample_rateintAudio sample rate (Hz).
channelsintNumber of audio channels.
bit_depthintAudio bit depth.
source_recordingstringOriginal recording filename.

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.mmm format; 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)

python
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)