听写工具

自定义词库/语音播报/自动批改

410 次访问

听写工具

朗读语言

语速

词表(每行一个,可填中文 / 英文 / 拼音)

· 基于浏览器 Web Speech API 朗读,无需联网

· 自带 6 个例词,可整段替换:每行一个词 / 句

· 按 Enter 提交答案,空格 重听

关于本工具

了解工具定位 · 使用场景 · 对比优势

使用场景

📚

语文生词听写

小学生家长每天需要给孩子听写课本生字词,但口音不准、速度难控制、反复念读费嗓子。使用本工具,家长只需将本周生词批量导入自定义词库,工具自动生成标准语音播报,支持逐词间隔调节和随机乱序,孩子独立完成听写后自动批改错字,家长只需查看错误报告针对性巩固。

🌐

英语单词听写

英语学习者背单词时常常只认形不认音,听写时听不出单词。本工具支持自定义词库导入(如雅思核心词汇、教材单元词汇),语音播报可选择英音/美音、正常/慢速,听写完成后自动比对拼写,高亮错误字母并显示正确拼写,帮助建立音形对应关系。

🧑‍⚕️

医学专业术语

医学生需要大量听写拉丁文药名、解剖学名词,这些词汇在通用听写软件中无法识别。使用本工具的自定义词库功能,将教材附录的术语表批量导入,语音播报按专业发音规则朗读,自动批改时能准确识别复杂字母组合,大幅提升专业词汇听写效率。

📝

古诗词默写训练

备考语文古诗词默写时,容易写错同音字(如‘坐’与‘座’)。本工具支持将整首诗词作为词库导入,语音播报朗读诗句原文,用户逐句默写后自动批改,标记错别字并给出正确写法。对于长诗词,可分段听写,降低记忆负担,精准定位易错字。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具竞品 A(讯飞听见)传统方法(纸笔听写)
数据隐私纯浏览器处理,音频和文本均不上传服务器音频上传至云端转写完全本地,无电子数据留存
处理速度实时转写,无网络延迟上传后需等待数秒至数分钟人工逐字听写,速度取决于操作者
离线可用完全离线,不依赖网络必须联网使用完全离线
自定义词库支持导入专业术语/生僻词库支持行业词库,需付费或定制无,完全依赖人工识别
自动批改支持语音播报后自动比对并标记错误提供转写文本,无自动批改功能人工对照批改,耗时且易遗漏
语音播报内置播报功能,可调节语速/重复次数无播报功能,仅提供转写需另备录音设备或人工朗读
收费模式免费,无使用次数限制按转写时长收费(约 0.33 元/分钟起)仅需纸笔,时间成本高

使用指南

上手步骤 · 输入输出 · 避坑提示

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
今天天气真好,我们去公园散步吧。今天天气真好,我们去公园散步吧。典型场景:标准普通话短句听写
人工智能(AI)是计算机科学的一个分支,它企图了解智能的实质。人工智能(AI)是计算机科学的一个分支,它企图了解智能的实质。典型场景:含英文缩写和括号的学术句子
窸窸窣窣 饕餮 魑魅魍魉 茕茕孑立 沆瀣一气窸窸窣窣 饕餮 魑魅魍魉 茕茕孑立 沆瀣一气边界 case:生僻字词听写,测试词库覆盖率
第1章 绪论 1.1 研究背景 1.2 研究意义 1.3 国内外研究现状第1章 绪论 1.1 研究背景 1.2 研究意义 1.3 国内外研究现状边界 case:含数字序号和换行的结构化文本
他说:“你确定吗?”她回答:“是的,我确定。”他说:“你确定吗?”她回答:“是的,我确定。”易错 case:中英文引号混用,测试标点处理
我是中国人,我爱我的祖国。我是中国人,我爱我的祖国。我是中国人,我爱我的祖国。我是中国人,我爱我的祖国。易错 case:重复句子,测试自动批改能否识别
(空输入)请输入听写内容边界 case:空输入,测试空值处理

常见错误对照7 个常踩的坑 · 错误 → 修复

1. 自定义词库中混入标点或空格

错误
苹果, 香蕉, 橘子
修复
苹果
香蕉
橘子

词库按行解析,逗号、空格会被当作词的一部分,导致语音播报时读出标点或产生意外停顿。

2. 自定义词库包含空行

错误
苹果

香蕉
修复
苹果
香蕉

空行会被解析为一个空词,自动批改时可能匹配到空白字符,导致误判为错误。

3. 语音播报速度设置过快

错误
speed: 10(最高速)
修复
speed: 3~5

听写训练需要留出书写时间;速度过快会导致用户来不及写,失去训练效果。

4. 自动批改后忽略大小写

错误
输入 "Apple" 但词库是 "apple",标记为错误
修复
开启大小写忽略选项(如支持)或统一使用小写

默认批改是精确匹配,大小写不一致会被判错;若训练目标不区分大小写,需手动统一。

5. 词库包含重复词条

错误
苹果
苹果
香蕉
修复
苹果
香蕉

重复词条会导致同一个词被播报两次,浪费听写轮次,且批改时可能产生重复标记。

6. 词库中混入数字或特殊符号

错误
第1课
hello!
修复
第一课
hello

语音播报引擎对数字和符号的发音可能不符合预期(如 "!" 读作 "感叹号"),干扰听写训练。

7. 听写时使用耳机但未关闭系统提示音

错误
手机通知音与语音播报同时播放
修复
开启勿扰模式或关闭系统通知

系统提示音会打断听写节奏,导致用户漏听或误听播报内容。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

Score = (Correct / Total) × 100

变量说明

  • Score — 听写正确率(百分比)
  • Correct — 用户输入与标准答案完全匹配的字数
  • Total — 本次听写总字数

示例

听写 20 个词,用户正确写出 17 个。则 Correct=17, Total=20, Score = (17 / 20) × 100 = 85%。批改结果:正确率 85%,错词 3 个(如“晨曦”误写为“晨希”)。

适用范围

适用于工具内置的自动批改功能,基于逐字精确匹配(含多音字容错)。不适用于自由听写(无标准答案)或语义相似但字形不同的场景。

原理图

自定义词库用户上传或编辑词表语音播报浏览器 TTS 引擎逐词朗读词库内容用户听写输入自动批改对比原文与听写结果全程在浏览器本地运行,无数据上传
用户输入 本地处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import pyttsx3
import difflib

# 语音播报:将文本转为语音
engine = pyttsx3.init()
engine.say("请听写以下词语:苹果、香蕉、橘子")
engine.runAndWait()

# 自动批改:对比听写结果与标准答案
def auto_grade(user_input: str, answer: str) -> dict:
    user_words = user_input.replace(",", ",").split(",")
    answer_words = answer.split("、")
    ratio = difflib.SequenceMatcher(None, user_words, answer_words).ratio()
    return {
        "correct_count": sum(1 for u, a in zip(user_words, answer_words) if u.strip() == a.strip()),
        "total": len(answer_words),
        "accuracy": round(ratio * 100, 1)
    }

# 示例
result = auto_grade("苹果,香蕉,桔子", "苹果、香蕉、橘子")
print(result)  # {'correct_count': 2, 'total': 3, 'accuracy': 66.7}
package main

import (
	"fmt"
	"strings"
	"github.com/sajari/fuzzy"
)

// 自动批改:基于模糊匹配计算准确率
func autoGrade(userInput, answer string) (int, int, float64) {
	userWords := strings.Split(userInput, ",")
	answerWords := strings.Split(answer, "、")
	model := fuzzy.NewModel()
	model.SetThreshold(1)
	model.Train(answerWords)

	correct := 0
	for i, u := range userWords {
		if i < len(answerWords) && strings.TrimSpace(u) == strings.TrimSpace(answerWords[i]) {
			correct++
		}
	}
	accuracy := float64(correct) / float64(len(answerWords)) * 100
	return correct, len(answerWords), accuracy
}

func main() {
	correct, total, acc := autoGrade("苹果,香蕉,桔子", "苹果、香蕉、橘子")
	fmt.Printf("正确 %d/%d,准确率 %.1f%%\n", correct, total, acc) // 正确 2/3,准确率 66.7%
}
// 语音播报:使用 Web Speech API
function speak(text) {
  const utterance = new SpeechSynthesisUtterance(text);
  utterance.lang = 'zh-CN';
  speechSynthesis.speak(utterance);
}
speak('请听写以下词语:苹果、香蕉、橘子');

// 自动批改:对比用户输入与标准答案
function autoGrade(userInput, answer) {
  const userWords = userInput.split(/[,,]/).map(w => w.trim());
  const answerWords = answer.split(/[、,]/).map(w => w.trim());
  let correct = 0;
  userWords.forEach((word, i) => {
    if (i < answerWords.length && word === answerWords[i]) correct++;
  });
  return {
    correct,
    total: answerWords.length,
    accuracy: Math.round((correct / answerWords.length) * 100 * 10) / 10
  };
}

console.log(autoGrade('苹果,香蕉,桔子', '苹果、香蕉、橘子'));
// { correct: 2, total: 3, accuracy: 66.7 }

常见问题

9 个高频疑问

听写工具怎么用?我输入文字后点播放没反应。
输入文字后,点击「开始听写」按钮,工具会逐词播报并留出书写间隔。没反应的原因通常是:浏览器阻止了自动播放(Chrome/Safari 默认策略)。解决办法:在页面空白处点击一下,或手动点击一次播放按钮触发用户手势授权。如果用的是 Edge 或 Firefox,检查地址栏左侧的站点权限——确保「声音」和「自动播放」设为允许。工具依赖浏览器内置的 SpeechSynthesis API,不需要安装任何插件。
为什么有些词它读的发音不对?比如多音字。
浏览器语音引擎对多音字识别有限。例如「行」在「银行」和「行走」中读法不同,但引擎可能一律读默认音。解决办法:在「自定义词库」中手动设置该词的标准读音(用拼音标注,如「银行(yín háng)」)。工具会优先使用词库中的注音覆盖默认发音。如果某个词在多个语境中都有歧义,建议拆成短句分别听写,或在词库中给每个语境单独加一条。
自动批改时,它怎么知道我写对了没有?是识别手写体吗?
不是识别手写体。自动批改的逻辑是:你输入正确答案列表后,工具在播放结束后切换到「批改模式」,你在输入框中打出你听写的文字,工具逐词比对——完全匹配标对,错字/漏字/顺序错误标错。它不关心你的笔迹,只对比文本字符串。所以如果用手机手写输入,请确保输入法识别正确。对于形近字(如「己/已/巳」),工具会严格区分,不会模糊匹配。
可以离线使用吗?没网络的时候能不能听写?
可以。这个工具纯在浏览器端运行——语音播报用的是浏览器内置的 SpeechSynthesis(不联网),批改比对也是本地 JavaScript 完成。首次加载页面后(需要网络加载一次),后续断网刷新页面仍然能正常使用。但注意:如果浏览器缓存被清除,或者用了隐私模式且关闭了页面,再次打开需要联网加载。建议常用的话把页面加入浏览器书签,不要每次清缓存。
支持英语听写吗?词库能加英文单词吗?
支持。在输入框直接输入英文单词或句子,工具会调用浏览器的英文语音引擎朗读。自定义词库同样可以添加英文词,注意大小写——批改时默认区分大小写(可在设置中关闭「区分大小写」)。但注意:浏览器语音引擎的英文发音是标准美式或英式(取决于系统和浏览器语言设置),如果用户需要特定口音(如印度英语),目前不支持。
最多能输入多少个词?有长度限制吗?
单次听写最多支持 200 个词(以空格或标点分隔的独立单位)或 5000 个字符,取较小值。超过限制时工具会提示截断。如果词库很大(比如 500 个生词),建议分批听写——每次 20-30 个词效果最好,因为连续播放超过 50 个词时,用户容易疲劳导致听写准确率下降。自定义词库本身没有条目数量上限,但建议控制在 1000 条以内,否则加载和检索会有轻微延迟。
听写速度能调慢一点吗?小孩跟不上。
可以。在开始听写前,找到「播放速度」滑块(默认 1.0x),向左拖动到 0.5x 或 0.7x,单词之间间隔会拉长。另外「间隔时间」设置项可以单独控制每个词播放后的停顿秒数(默认 3 秒,可调至 5-10 秒)。这两个参数组合使用:对低年级学生,建议速度 0.6x + 间隔 5 秒;对成年人,默认 1.0x + 间隔 3 秒通常够用。调整后点击「试听」可预览效果。
和用录音笔自己念了再听写相比,这个工具有什么优势?
核心区别:录音笔需要先录好音,再手动回放、暂停、倒带,操作繁琐且无法自动批改。本工具省掉了「录音 + 手动控制」的步骤——输入文字后一键开始,自动播报、自动留间隔、结束后立刻出批改结果。另外录音笔的发音可能受录制环境噪音影响,而浏览器语音合成发音稳定、无背景杂音。劣势是:发音是合成音而非真人声,对某些方言或特殊语调的还原不如录音。
为什么我点了「开始听写」后页面没声音?其他网页有声音。
这是浏览器自动播放策略导致的常见问题。Chrome 从 2018 年起要求音频必须由用户手势触发,如果页面加载后没有点击过任何按钮,SpeechSynthesis 会被静音。解决方法:① 点击页面任意空白处一次,再点「开始听写」;② 如果用的是 macOS Safari,检查菜单栏 Safari > 设置 > 网站 > 自动播放,确保当前站点设为「允许全部自动播放」;③ 检查系统音量或浏览器标签页是否被静音(标签页喇叭图标上是否有红叉)。
选择 打开 +新窗口 esc关闭