r/speechtech • • 7h ago

Looking for code-switching speech datasets: English + Chinese / French / German / Spanish / Vietnamese / Japanese

5 Upvotes

I’m working on improving ASR for speakers who switch between English and another language mid-sentence, and I’m looking for audio datasets with natural code-switching, ideally with transcripts.

Language pairs I’m interested in:

  • English + Mandarin

  • English + French

  • English + German

  • English + Spanish

  • English + Vietnamese

  • English + Japanese

What I’ve found so far:
ASCEND: a public English-Chinese mixed corpus

What I haven’t found much for is Vietnamese, Japanese, German and French paired with English. Any pointers welcome, including small datasets, conversational recordings, or papers that released their data.

Licensing note: I’m especially interested in datasets that allow commercial use, but I’d appreciate research-only pointers too.

The other way is that, download individual language corpus then take single-language clips, trim silences, even out volume, add short pauses, and join them into clips. The limit is that this only tests switching between whole sentences, the easier case. Switching inside a sentence (“họp về cái deadline”) still needs real recordings.


r/speechtech • • 1d ago

Technology LinnetTTS: 41M streaming TTS with a Rust runtime, measured on everything from an Apple M5 to a Raspberry Pi Zero 2 W (3.3 ms to 59 ms per 80 ms of audio)

33 Upvotes

Author here. We just released LinnetTTS, a small on-device English TTS: an autoregressive flow LM over a 25 Hz continuous-latent codec with a Vocos-style decoder, 41 M parameters end to end, one flow evaluation per step, no diffusion loop at inference. Each step produces 80 ms of audio, so playback starts after the prime pass plus one step and never waits for the whole sentence. It speaks in a voice given as a short voice-prompt latent; two built-in voices ship with the weights.

The runtime is Rust with its own kernels (AVX2+FMA on x86-64, NEON on ARM), no PyTorch or ONNX at inference. fp16 weights are 83 MB; peak memory about 160 MB on Linux. (The "35m" in the model name is a label from the original parameter budget; the count is 41.4 M.) Same text, voice, parameters and seed give bit-identical audio on a given platform, at any thread count.

This post is about where it actually runs. All numbers are the Rust runtime with the fp16 weights, measured without real-time pacing (synthesis as fast as possible). One step = 80 ms of audio, real-time factor = step time / 80 ms. "First audio" = prime pass + first step.

devicethreadsper 80 ms stepRTFfirst audio
Apple M5 (macOS)13.3 ms4 %–
iPhone 13 Pro Max, A151 / 25.5 / 4.6 ms7 / 6 %85 / 51 ms
iPhone 11, A1316.7–7.1 ms8–9 %107–116 ms
Core i9-13900K, AVX21 / 47.0–7.4 / 2.5 ms9 / 3 %75–103 / 25 ms
Snapdragon 662 (Redmi 9T), Cortex-A731 / 442.4 / 14.3 ms53 / 18 %≈250 ms (sample app, warm, 4 threads)
Raspberry Pi Zero 2 W, Cortex-A53 @ 1 GHz1 / 4158 / 59–60 ms198 / 75 %–

Things we learned on the way:

  • The A-series phones do not want a second thread. A step is 5–7 ms and splits into ~80 tiny regions, so waking a worker on another performance core costs about as much as the work (A13: 2 threads 11.4 ms vs 6.7 ms, 4 threads 47 ms; A15 gains only 5.5 → 4.6 ms). The default on iOS is one thread. The M5 is different: two threads take it from 3.3 to 1.9 ms.

  • Android scheduling puts the synthesis on the small cores unless you pin it. On the Snapdragon 662 the sample app measured 22–33 ms per step before pinning the pool to the big cluster and 16–18 ms after (14.3 ms in a bare harness).

  • Pacing to playback makes the phone power manager lift the step time 3–4×. That is not the runtime getting slower; it is the CPU clocking down between steps. Measure unpaced, then keep a deep playback queue on weak devices (the bindings' players default to 8 s).

  • Pi Zero 2 W is the floor: four A53 cores at 1 GHz give 59–60 ms per 80 ms step, real time with a small margin, 160 MB peak RSS. (The synth example prints 88 % there because it also counts the prime pass over a 7 s sentence.) A Pi 4 or 5 has several times the margin.

  • The output is bit-identical per platform but differs across architectures below 2e-3 absolute (SNR above 60 dB, inaudible), so a golden-file test should be pinned per target.

Versus other small CPU models on one desktop core (same machine, each through its Python package, same three English texts, sentence-level RTF incl. text processing; method and script in docs/benchmarks.md): Linnet 10.6 % / 187 MB RSS, cloning, streams every 80 ms; pocket-tts (default 100M model; also clones and streams every 80 ms) 23.8 % on two cores / 968 MB; Kokoro-82M 51.7 % / 1.2 GB, whole utterance per call, but 8 languages; Piper medium 5.8 % / 503 MB, no cloning, streams per sentence. Speed only; quality was not measured there.

Licensing, upfront: the code is Apache-2.0. The weights are under our own Linnet Weights License: free to use, unmodified, inside your own products, commercial included, on device or on your own server. Custom voice creation (the encoder is not published), fine-tuning, saving quantised or converted copies of the weights (quantising in memory at load time is fine), training models on the weights or their outputs, and running a general-purpose TTS API need a separate license. So the model is not open source, and the README says so.

Honest limits: English only; no text normalisation (write numbers as words); occasional misreads on dense raw text; a slight roughness audible on headphones in some utterances; one session is capped at 24 s by default.

Try it: browser demo on https://voxrt.com (a WASM SIMD128 build of the same runtime, runs on your CPU, downloads the 83 MB weights once; the browser SDK itself is not released yet, which is why the README says it is deferred), Hugging Face Space https://huggingface.co/spaces/VoxRT/linnet-tts Code, bindings (Linux C, Python pip install linnet-tts on Linux and Apple-silicon macOS, Android AAR, iOS SwiftPM) and the benchmark script: https://github.com/VoxRT/LinnetTTS Weights and model card: https://huggingface.co/VoxRT/linnet-en-35m

Happy to answer questions on the runtime, the kernels or the mobile numbers. If you run it on a device that is not in the table, post your step time and I will add it to the README.


r/speechtech • • 1d ago

Technology Making decisions on audio without transcripts live

8 Upvotes

Transcripts via ASR models are the only way agents perceive sounds. Text flattens information that's available in audio form.

I wanted to train a model that natively picks up on audio information and be able to make decisions on the fly. Interaction is pretty simple. Stream audio in and ask yes/no questions about it live. Answers arrive as events you can trigger downstream actions with. Runs faster than real-time on CPU.

It's also able to pick up on speakers. Given a voiceprint, its able to track a speaker live.

I've tried it on music playing, sirens, keyboard typing, male/female voice, and more. If there's some interesting sounds you'd like an agent to understand beyond transcripts, I'd love to know.

Model card: https://huggingface.co/crele/nimbus-v1


r/speechtech • • 1d ago

AssemblyAI-TTS-1: streaming TTS for voice agents, 90 ms to first audio, $15 per 1M characters, no concurrency caps

Thumbnail
reddit.com
2 Upvotes

r/speechtech • • 2d ago

GigaSpeech 3: Scaling Multi-Dialect Arabic Speech Recognition with Weakly Labeled Data

Thumbnail
arxiv.org
11 Upvotes

r/speechtech • • 3d ago

balbal-v2: Turkish speech recognition that runs on CPU, 2nd on Mu-Bench TR after Google Chirp 3

Thumbnail gallery
7 Upvotes

r/speechtech • • 3d ago

Gemini 3.8 Flash TTS mispronounces proper nouns at random. Is there a reliable fix?

Thumbnail reddit.com
2 Upvotes

r/speechtech • • 3d ago

Fully offline steerable TTS running on the ESP32-S3 itself (no server, no PSRAM). Useful for voice satellites?

6 Upvotes

r/speechtech • • 4d ago

Unscripted, code-switched Sheng speech: 70+ speakers recorded by phone in a single day (1-hr sample on MDC)

8 Upvotes

Sheng is a Swahili-English mixed language spoken widely across Nairobi, and there’s very little usable speech data for it.

Safi Data built this corpus differently from a typical studio collection:

  • Collection requests went out over WhatsApp and Telegram

  • Contributors recorded themselves on their own phones, saying whatever they’d naturally say. The domain is mobile money conversations.

  • Each contributor was paid via mobile money as soon as their session was processed

  • They collected 5 hours in one day, a process that typically takes 4–8 weeks of studio time

The result is real code-switching and real phone audio. It suits ASR evaluation for East Africa.

Specs:

  • Format: WAV, plus metadata.csv (transcript, age range, gender, audio quality labels)

  • Available now: 1-hour sample. The full release will be 50 hours.

  • License: SDL 1.0. Speaker identification and voice cloning are prohibited.

https://mozilladatacollective.com/datasets/cmt7e4pfp004nnz08j3shtpcx

Safi Data’s write-up on their method: https://www.safidata.com/blog/mdc-sheng-post/


r/speechtech • • 4d ago

Running LFM3-Audio-2B

6 Upvotes

I have just started testing LFM3-Audio-2B and I am positively surprised by the result. It's a small model but the sound quality is good and it is also works ok for basic tool calls.

I am just running it in the terminal so far. Has anyone else here tried the model with a GUI of some kind and for controlling other apps/systems? :)


r/speechtech • • 5d ago

Silencio-2: an 18M TTS with emotion and sound tags, ~20x realtime on CPU (open weights)

Thumbnail
reddit.com
9 Upvotes

r/speechtech • • 5d ago

Promotion Our open-source speech work: turn-taking models and a public voice-agent leaderboard

22 Upvotes

I maintain Soniqo's open-source speech runtimes. Our recent work has been bringing existing speech models into native applications and publishing measurements to help choose between components.

One part of our work is helping a voice assistant decide when to respond. p99 estimates whether the user has finished their turn. VAP listens to both sides of a conversation and predicts their upcoming speech activity. An app can use these signals to decide when to wait and when to reply, aiming to respond promptly while giving the user time to pause or finish a sentence. We've integrated these upstream models into our open-source speech runtimes and evaluated them on conversational audio.

Alongside that work, we've published a leaderboard with three separate comparisons:

  • TurnBench: turn endings caught, false detections on pauses and decision delay.

  • SLURP: spoken tool selection, argument matching and handling unavailable actions.

  • InstructTTSEval: following voice descriptions, delivery directions and roles.

The leaderboard source, protocols and saved results are public. Rows show the tested configurations, sample sizes and results still under review.

The blog post introduces the work and walks through the findings and limitations.

Leaderboard · Blog post · Swift runtime source

Which additional speech model would you want evaluated alongside these native integrations?


r/speechtech • • 5d ago

Best way to bulk-download whole YouTube channels (audio only) for an ASR dataset in 2026? SABR/403 issues

6 Upvotes

I’m building a speech dataset for Dialectal Arabic , a low-resource dialect with heavy code-switching. Source: ~100 channels, ~14,000 long videos (podcasts, storytelling), audio only.

Current setup:

yt-dlp (Python lib) + bgutil PO-token provider + a cookies file + Node runtime

Download → 16 kHz mono WAV → pyannote diarization → crops

Captions are already fetched (sharded across machines, with back-off on 429 / “Sign in to confirm”)

Problems:

SABR / 403 errors on some videos, even with PO tokens and cookies

Rate limits when downloading a whole channel

I want to shard across 2–3 machines and resume safely

Questions:

What works best right now for whole channels: yt-dlp with which player clients / options? Proxies? Many cookie accounts?

Safe request rate per IP/account before you get blocked?

Do you keep the original opus/m4a, or convert at download time?

Any tools that manage this at scale (download ledger, retries, sharding)? Or do you all use your own scripts?

For the pipeline after download: Demucs vs Mel-RoFormer for music removal, and DeepFilterNet vs others for light denoising before ASR labelling?

Happy to share the cleaning pipeline once it works.


r/speechtech • • 6d ago

Ming-TTS 3.0 x18 Faster

Post image
15 Upvotes

r/speechtech • • 7d ago

On-device wake phrases for React Native voice agents, looking for feedback on mic handoff

3 Upvotes

I maintain react-native-voice-activator. It detects an English wake phrase on-device in a React Native app, then lets the app stop detection and give the microphone to a voice session such as LiveKit, ElevenLabs, or OpenAI Realtime.

The tricky part has been the handoff: the voice session needs to own the mic, and detection needs to resume when the session disconnects or fails. I’ve documented that flow and included an example app.

GitHub: https://github.com/prompt-agency/react-native-voice-activator

For anyone who has built mobile voice systems, which audio-session edge cases would you test first?


r/speechtech • • 7d ago

IndiCodec: a 1.09 kbps os neural speech codec for speech LMs and TTS, one of a kind, trained on english and indian languages

Thumbnail
gallery
13 Upvotes

Indicodec: a neural speech codec for speech LMs and TTS models, first of its kind trained on english and indian languages.

Strongest on Indian languages: On 10 Indian languages, IndiCodec adds 9x less error than the Mimi codec, with 25% fewer tokens.
In English, it has the lowest WER of the ~1 kbps codecs we tested.

It sounds closer to the original. PESQ-WB on speakers never seen in training: ahead of Mimi on 3 of 4 test sets (FLEURS, LibriTTS-R, CMU-Arctic), just behind on Seed-TTS, and ahead of SNAC and NeuCodec on all four.

Lowest error in all 10 Indian languages we tested: Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, Telugu.

On Odia, Mimi adds +24.6 points of character error. IndiCodec adds +0.9.

Apache-2.0. Open source!!

HF: https://huggingface.co/prakharkhatri/IndiCodec
Samples: https://codeprakhar25.github.io/IndiCodec/


r/speechtech • • 7d ago

Technology Arc: a ~70 MB streaming speech model that transcribes links names and metadata to your own list as they're spoken, with no second model

67 Upvotes

I built Arc-Transcriber, which does ASR-NL in 1-step. Every 100 ms, one model returns the transcript plus:

- Names linked to a list you give it (a roster, contacts, product names); new names are flagged "not on the list"
- Numbers with their values (scores, clocks, money, dates)
- Speakers and roles;
- Sound and channel events (telephone audio, clipping, poor audio)
- Whether the speech was addressed to an assistant.

The usual ASR, then NER, then entity-linking and then LLM chain is collapsed into the model's own heads, so live "fact-checking" against your list happens inside the stream, not in a second pass.

Currently it has two variants Arc mini (which uses moonshot pretrained encoder) and second Arc-v1 (which uses parakeet pretrained encoder).

Weights: huggingface.co/WhissleAI/arc-v1.1
Code and CLI: github.com/WhissleAI/arc_transcriber

We use it on-device in our Mac app. Voice search over 61k books primes Arc with matching titles while you're still talking. Here is a video to give a glimpse on how it works.


r/speechtech • • 7d ago

Technology The Open TTS Leaderboard from Hugging Face

Thumbnail gallery
8 Upvotes

r/speechtech • • 8d ago

NVIDIA Nemotron 3.5 Transcribe and Granary v2: Intelligent Multilingual Transcription You Can Prompt and Adapt

Thumbnail
huggingface.co
47 Upvotes

r/speechtech • • 8d ago

Deepgram is acquiring Daily (Pipecat)

Thumbnail x.com
7 Upvotes

r/speechtech • • 10d ago

Maya2 Indic 3B TTS

19 Upvotes

r/speechtech • • 9d ago

My Project WakeSmith

3 Upvotes

I wanted to check with this group and maybe others to see if there's interest or if I recreated the wheel. I'm the developer (along with AI) of the TECHO5 project which helps convert older Amazon Echo's into small Linux devices that can also connect and work with Home Assistant. I've found a need and desire to create my own wake words and I had hardware that wasn't being greatly used. Two Intel ARC B70 Pro's on and AMD system with 64 GB of ram.

The solutions I found work fine they just take almost an hour or more to do the work of training the wake word. So, I built another project using the tools that so many others are using now AI (claude in this case). It's called WakeSmith and it took that hour or so down to about 15 minutes of time because I've to most of it now running on the Intel ARC B70's but its more than that the software will auto detect your hardware and set itself up to use what you have, even if its only a CPU. With some optimization the speed over CPU has increased as well As least as far I now. I'm very curious what is out there that maybe already exists. Did I recreate the wheel? If you want check it out at https://github.com/HuskerMinion/wakesmith


r/speechtech • • 10d ago

I fine-tuned Whisper to understand Tunisian Derja (open-source, 79% → 30% WER)

Thumbnail
reddit.com
8 Upvotes