Urgent.News

What's breaking now, across thousands of outlets.

Tech

Counting filler words when speech-to-text deletes them

We wanted a one-minute speaking test that gives a learner three numbers: words a minute, filler words and long pauses. The browser's speech recognizer would do the hard part. We'd count. It turns out the transcript fights you on all three. Lie 1: the model cleans up "um" Speech recognizers are trained to produce readable text, so "um" and "uh" mostly vanish. Count fillers from the transcript and…

The test aimed to measure speaking speed, filler words, and long pauses. The browser's speech recognizer, responsible for most of the work, had challenges in all three areas. Firstly, the model removed filler words like "um" and "uh" during transcription, making it seem like a nervous speaker was more fluent than they actually were.

There was no straightforward solution to the page. However, the filler words that persisted in the transcript could be counted, as they were considered real words. For instance, "matlab" and "you know" were included in the count. Secondly, the term "like" was not always considered a filler. For example, "I like Python" was not a filler, but "I like, like, Python" was.

The code checks the preceding word to determine if "like" was used appropriately. Thirdly, the transcript did not display pauses directly because it lacked timestamps per word. Nevertheless, it was possible to identify pauses by observing when results arrived. If two "onresult" events occurred more than two seconds apart, it indicated a pause.

This method, though noisy on slow networks, proved accurate enough for detecting pauses. Fourthly, Android Chrome repeated sentences when using the "continuous" feature, doubling the number of words per minute. The code addresses this by joining the results naively and only adding a new result to the list if it doesn't begin with the previous one.

Lastly, issues with Android Chrome's behavior, such as prematurely ending a continuous session and delaying the arrival of the final result, were also addressed in the code. The scoring process was straightforward, using thresholds to classify the speech as slow, natural, or fast. The transcription model handled the listening aspect, while the judgment was left to plain if statements that anyone could read and argue with.

The test can be accessed at the "60-second English fluency test" link, compatible with Chrome, Edge, or Safari browsers. Firefox users are limited to a typed fallback due to the lack of a SpeechRecognition feature.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Why Model Context Protocol (MCP) Needs an Execution Firewall (And How We're Experimenting with One in Rust)

TL;DR: The Model Context Protocol (MCP) is solving one of the hardest developer problems in AI: giving models a standard way to find tools and context.

  • Model Context Protocol (MCP) advances LLM integration with external systems.
  • Trust Gateway acts as an execution firewall between LLM and tools.
  • Rust-based proxy verifies tool calls with cryptographic signatures and fail-closed mechanisms.

PeoplePro: Connecting People, Payroll, Projects, and Customer Work

Written from the product perspective of LionCoders, the team behind PeoplePro. An employee joins a company. HR creates the employee record, a manager assigns work, and payroll needs the correct salary information. Meanwhile, a service team may be tracking the customer project that employee will help deliver.

  • PeoplePro integrates HR, payroll, projects, and CRM in one system
  • Supports attendance tracking, salary components, and payroll approvals
  • Includes role matrix and fictional scenarios for implementation planning

More from Saturday 7 November →