CoolFace
Datasetpublic

emoji-tts/emoji-tts-22k

Emoji-TTS 22K Training Data Emoji-TTS 22K is the training corpus used to build Emoji-TTS, an emoji-conditioned expressive text-to-speech model. Each example pairs an English transcript, an emoji control label, and a synthetic WAV utterance spoken with the fixed Kore voice. The corpus contains 21,940 utterances: 19,945 emoji-conditioned samples and 1,995 neutral/no-emoji samples. The control inventory covers ten emoji labels plus the neutral <none> label. How It Was… See the full description on the dataset page: https://huggingface.co/datasets/emoji-tts/emoji-tts-22k.

sourceHugging Facemitupdated 5mo agoView on Hugging Face
0likes36downloads
Dataset Card

Emoji-TTS 22K Training Data

Emoji-TTS 22K is the training corpus used to build Emoji-TTS, an emoji-conditioned expressive text-to-speech model. Each example pairs an English transcript, an emoji control label, and a synthetic WAV utterance spoken with the fixed Kore voice.

The corpus contains 21,940 utterances: 19,945 emoji-conditioned samples and 1,995 neutral/no-emoji samples. The control inventory covers ten emoji labels plus the neutral <none> label.

How It Was Built

The source texts were selected from public Bluesky posts. We retained English, single-emoji texts from the ten target emoji classes, applied deduplication and length filtering, and sampled roughly 2,000 examples per emoji. A separate neutral subset was sampled from no-emoji/social-text candidates and assigned the <none> control label.

For each emoji-conditioned text, a Gemini director model produced a short delivery instruction describing prosody, affect, emphasis, pace, and vocal color while preserving the transcript. The neutral subset used a calm, text-led delivery prompt. Before speech synthesis, emoji clusters and hashtag tokens were removed from the spoken transcript. Gemini 2.5 Flash TTS and Gemini 2.5 Pro TTS were used to render speech, with Pro renderings preferred when both were available. Failed generations, missing audio, empty text, and duplicate IDs were discarded.

The final dataset was split with fixed seed 42 into 19,940 training samples, 1,000 validation samples, and 1,000 test samples. Metadata summaries and the Emoji-TTS training plan are included under metadata/.

What It Is For

This dataset is intended for research on emoji-controlled expressive TTS, disentangled prosody/style control, speech-to-emoji evaluation, and text-to-speech systems that need a lightweight symbolic emotion control signal.

It is not a human speaker dataset: all released audio is synthetic and uses one fixed TTS voice. The text comes from public social posts and may contain informal language, mentions, slang, sarcasm, or noisy web text.

Labels

  • —<none>: 1995
  • —😭: 1999
  • —😂: 1996
  • —😊: 1996
  • —😍: 1996
  • —🙏: 1996
  • —🤔: 1996
  • —🔥: 1995
  • —💔: 1994
  • —👏: 1992
  • —🙄: 1985

Files

  • —train/shards/*.tar: 19,940 samples
  • —validation/shards/*.tar: 1,000 samples
  • —test/shards/*.tar: 1,000 samples
  • —*/metadata.jsonl: per-split sample index
  • —metadata/all_records.jsonl: global sample index
  • —metadata/emoji_vocab.json: label-to-id mapping
  • —metadata/source_summary.json: source selection summary
  • —metadata/split_summary.json: split and label-count summary
  • —metadata/train_plan_e10_noemoji22k_turbo_optinv4.json: training recipe metadata
  • —prompts/neutral_prompt_kore_poe.wav: neutral prompt audio used by the Chatterbox Turbo recipe

Each tar member pair contains one 00000000.wav file and one matching 00000000.json metadata file. The JSON metadata includes id, text, emoji, emoji_id, language_id, source_split, tts_model, voice, and audio_format.

Minimal Access Example

python
import json
import tarfile

with tarfile.open("train/shards/train-00000.tar") as tar:
    meta = json.loads(tar.extractfile("00000000.json").read())
    wav_bytes = tar.extractfile("00000000.wav").read()

print(meta["text"], meta["emoji"], len(wav_bytes))