Downloads · 30 days
27
5% of all-time downloads
cesp99/qwen3-sussurro
qwen3-sussurro is a machine learning model from cesp99. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as gpl-3.0.
A fine-tuned version of Qwen/Qwen3-1.7B for speech-to-text transcription correction.
Downloads · 30 days
27
5% of all-time downloads
All-time downloads
536
Public
Repo size
9 GB
Likes
1
Public
Click a slice to open those files.
.gguf9 GB · 100%
From the Hugging Face model README
A fine-tuned version of Qwen/Qwen3-1.7B for speech-to-text transcription correction.
This model converts raw speech transcriptions into clean, written-quality text by:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Load model and tokenizer
model_name = "cesp99/qwen3-sussurro"
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
trust_remote_code=True,
torch_dtype=torch.bfloat16,
)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
# System prompt
system_prompt = """You are a speech-to-text correction specialist. Your task is to convert raw speech transcriptions into clean, written text by:
- Removing all filler words (um, uh, like, you know, I mean, actually, literally, right, you see)
- Fixing stuttering and repeated words (the the → the, we we → we)
- Eliminating false starts and self-corrections
- Converting conversational speech patterns to formal written language
- Organizing rambling thoughts into clear, structured sentences
- Preserving all important meaning and content"""
# Example correction
raw_speech = "so, uh, I was thinking like maybe we could, you know, meet up on Saturday?"
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": raw_speech},
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=256,
temperature=0.7,
top_p=0.8,
top_k=20,
do_sample=True,
)
corrected_text = tokenizer.decode(
outputs[0][inputs['input_ids'].shape[1]:],
skip_special_tokens=True
)
print(corrected_text)
# Output: "I was thinking maybe we could meet up on Saturday?"
Input: "so, uh, I was thinking like maybe we could, you know, meet up on Saturday?" Output: "I was thinking maybe we could meet up on Saturday?"
Input: "the the budget report is, uh, almost ready and we we just need to finalize" Output: "The budget report is almost ready and we just need to finalize it."
Input: "I mean, actually, uh, we should probably, like, you know, consider all the options" Output: "We should probably consider all the options before making a decision."
GNU General Public License v3.0 (GPL-3.0)
This fine-tuned model is licensed under GPL-3.0. Note that the base model (Qwen3-1.7B) is Apache 2.0 licensed.
If you use this model, please cite:
@misc{qwen3-sussurro,
title={Qwen3-1.7B Sussurro},
author={Carlo Esposito},
year={2026},
publisher={Hugging Face},
url={https://huggingface.co/cesp99/qwen3-sussurro}
}
Full training pipeline and code: github.com/cesp99/qwen3-sussurro