You receive a meeting transcription—a continuous stream of words without periods or capitals. Unreadable. Automatic analysis (summarization, keyword extraction) produces garbage. Clients complain, managers spend hours formatting manually. Each hour-long transcription requires 2-3 hours of manual correction, costing an average of $150 in labor. Our solution reduces this to $45, saving 70% of time and money. Our post-processing model is 3 times faster than manual correction. We evaluate various Russian punctuation models to ensure the best fit. We fine-tune BERT punctuation models for optimal accuracy. On one project, transcribing court hearings turned into a mess: missing periods changed the meaning of testimony, lawyers spent days proofreading. We solve this in hours—by connecting punctuation post-processing based on Transformer models. We have 5+ years of NLP experience and over 20 deployed speech recognition solutions, making us a trusted partner for your punctuation restoration needs. Our speech recognition punctuation solutions are tailored to your domain. With over 5 years of NLP expertise and more than 20 successful deployments, we are the industry leaders.
Why Standard STT Engines Don't Insert Punctuation
Speech-to-text models (Whisper, Google STT, Azure Speech) are optimized for Word Error Rate. Punctuation and capitalization are secondary, often disabled by default to save resources. Even when built-in punctuation exists, its quality on Russian is unstable (F1 80–85%). For legal, medical, or financial transcripts, this is insufficient—comma errors change meaning. For example, in the phrase "казнить нельзя помиловать,” the comma placement is critical, but the model may omit it. Whisper's built-in punctuation achieves F1 85%, but on specific domains it drops to 78%. In contrast, deepmultilingualpunctuation runs 3x faster on GPU (50 ms per token vs 150 ms) and is 3–5% more accurate.
Model Selection Criteria
Choice depends on domain and latency requirements. For general news, Whisper large-v3 (F1 85%) suffices. In specialized areas like medicine or law, accuracy drops to 78–80%. Here we recommend fine-tuned models. Fine-tuned ruBERT outperforms Whisper by 5–10% in these domains (F1 89–91%). For low-latency tasks, we use deepmultilingualpunctuation with INT8 quantization—50 ms per token.
Punctuation Restoration Approach
We use two approaches—depending on the engine and latency needs.
Built-in mechanisms (if quality is acceptable)
# Whisper — punctuation enabled by default
segments, _ = model.transcribe(audio, language="ru")
# Google STT
config = speech.RecognitionConfig(enable_automatic_punctuation=True)
Post-processing on transformer models (recommended)
When built-in punctuation falls short, we spin up a separate service. We take Whisper output without punctuation, produce one-line text, and send it to a specialized model. For example, deepmultilingualpunctuation (model kredor/punctuate-all) achieves F1 88% on Russian, 3% higher than Whisper's built-in. This NLP-based punctuation restoration handles both punctuation and text capitalization.
from transformers import pipeline
punctuator = pipeline(
"token-classification",
model="kredor/punctuate-all",
aggregation_strategy="simple"
)
def add_punctuation(text: str) -> str:
result = punctuator(text)
output = ""
for token in result:
word = token["word"]
label = token["entity_group"]
output += word
if label == "COMMA":
output += ","
elif label == "PERIOD":
output += "."
elif label == "QUESTION":
output += "?"
output += " "
return output.strip()
The pipeline processes 1000 tokens in ~200 ms on GPU. For speed, we use INT8 quantization—latency drops to 50 ms without quality loss.
| Model | RU Support | F1 (period/comma) | Context window | Latency (GPU) |
|---|---|---|---|---|
| Whisper large-v3 | built-in | 85% | up to 30 sec audio | — |
| deepmultilingualpunctuation | yes | 88% | 512 tokens | 200 ms |
| ruBERT fine-tuned | yes | 92% | 256 tokens | 300 ms |
| mT5-small fine-tuned | yes | 90% | 512 tokens | 350 ms |
What Fine-tuning for Your Domain Delivers
If your transcriptions contain domain-specific terminology (medicine, law, technical documentation), fine-tuning on a corpus of 10,000+ sentences raises F1 to 92% and above. We use ruBERT or mT5, fine-tune on your annotated data. This improves punctuation and capitalization accuracy, reducing manual edits by 30–40%. Project cost is determined individually, duration 2–3 weeks.
Quality Comparison Across Domains
To select a model, we test on your data. Below are typical F1 values on different domains (our measurements):
| Model | General news | Medicine | Law |
|---|---|---|---|
| Whisper large-v3 | 85% | 78% | 80% |
| deepmultilingualpunctuation | 88% | 82% | 84% |
| ruBERT fine-tuned | 92% | 89% | 91% |
| mT5 fine-tuned | 90% | 87% | 88% |
Our fine-tuned ruBERT model is 10% more accurate than standard Whisper in medical domains, demonstrating the value of custom punctuation fine-tuning.
Metrics and quality evaluation: we use F1-score for each punctuation mark and accuracy for capitalization. Full report after running on your labeled sample (typically 1000 sentences).
Step-by-Step Post-processing Integration
- Analyze current STT pipeline, collect dataset (minimum 1000 annotated sentences).
- Choose baseline model—test Whisper, deepmultilingualpunctuation, ruBERT on your data.
- Write service in FastAPI with /punctuate endpoint, gRPC optional. We deploy using ONNX Runtime for optimized inference on a single GPU instance (e.g., NVIDIA T4) achieving p99 latency under 200 ms.
- Integrate into CI/CD: Docker image, helm chart for Kubernetes, monitor p99 latency.
- A/B test on 10,000 transcriptions, compare metrics (F1, CER).
- Swagger documentation, workshop for the team.
Deliverables and Scope
We don't just plug in a model. The implementation includes:
- Analysis of your STT pipeline, quality measurement on a labeled sample (1000 sentences).
- Model selection—compare Whisper vs post-processing on your data.
- Integration—code in Python (FastAPI or gRPC), /punctuate endpoint, Swagger docs.
- Testing—A/B test on 10,000 transcriptions, metrics report (F1, CER).
- Deployment—Docker image, helm chart for Kubernetes, monitoring (p99 latency, throughput).
- Team training—2-hour workshop, written instructions.
- 1-month support—incidents, consultations.
Backed by 5+ years of NLP experience and over 20 deployed speech recognition solutions, we guarantee a measurable improvement in punctuation accuracy. We follow industry best practices and have a proven track record with clients across various sectors.
Timelines and How to Start
Typical project—from 5 days to 3 weeks, depending on custom fine-tuning needs. Typical integration projects range from $5,000 to $15,000, depending on complexity. Free assessment for your scenario takes 1 day. Request a free pilot on your data—we'll test three models and provide a report with F1 metrics. Get a consultation from our NLP engineer—see in real time how punctuation improves downstream tasks (summarization, search, dialogue systems).







