Linux无障碍环境搭建:零配置→语音导航全指南
|
昨天下午三点,外卖催单那个提示音又响了——叮咚,叮咚,叮咚,跟敲丧钟似的。我正蹲着擦地砖缝里那根蔫掉的香菜梗,抹布是湿的,拧不干,水顺着指缝往下滴,在地砖上洇开三块深色印子。隔壁老张端着搪瓷缸子过来借火,我叼着烟没点,他顺手从我耳朵上把打火机薅走了,咔哒两声才亮。我就蹲那儿看着,没说话。 去年11月,我们店后巷那个盲人程序员老陈,推着折叠轮椅进来,轮子卡在门槛水泥缝里,吱呀转了半分钟。我抄起墩布杆子帮他撬,手背上烫了个泡——前天煮糖水溅的,还没结痂。他摸到柜台边,说想装个Linux语音系统,家里老台式机跑Windows卡得像拖拉机挂五档,每次点“设置”都得等它念完三遍“正在加载…请稍候…”。我说你不如换Mac啊,他笑了一下,手指搓了搓裤缝:“Mac语音太贵,Plus版订阅比我家宽带还贵。” 我原以为这事儿就是帮个忙,下个Orca、配个eSpeak,十分钟搞定。结果他掏出U盘,里面就一个压缩包,名字叫“zeroconf-acc-linux-202311”,我点开README——第一行写着:“no config, no sudo, no reboot. plug in → speak.” 我愣了三秒,顺手点进源码目录,全是.sh和.yaml,连一个configure脚本都没有。冰柜压缩机一直在响,嗡——嗡——嗡——像在嘲笑我当年在甲方写PRD时吹的“全平台零配置兼容”。 那天晚上我在后仓改了四次启动参数。第一次漏了pulseaudio桥接,语音合成出来像含着馒头说话;第二次把TTS引擎设成mbrola,音调突然高八度,老陈听见第一句“欢迎使用”,直接笑呛了茶水;第三次我忘了屏蔽内核模块签名检查,系统卡在紫屏不动,老陈摸索着摸到键盘F2键按了十一下,问:“是不是要重插USB?”——其实他根本不知道USB在哪。第四次终于跑通了,语音导航一开口,是中文女声,但语速慢了0.3倍,像老式磁带快放后倒着再放一遍。我盯着屏幕右下角时间:23:47,离我关店只剩十三分钟。 后来才知道,这包是芬兰赫尔辛基一群视障开发者自己攒的,主程叫Lena,左手缺两根指头,GitHub提交记录里所有diff都带手写注释图片——她用OCR读自己写的笔记再转文本,图里还能看见咖啡渍晕开一块。他们没申过一分钱开源基金,全靠给欧盟政府项目做无障碍适配返点养活自己。前年申请一个政府采购标,招标文件写“须支持IE11及国产OS双兼容”,他们投标被刷了,理由是“未提供IE11兼容性测试报告(尽管Linux本就不跑IE)”。结果去年同一个局,又招“无障碍智能终端中间件”,这次中标方报价68万,交付物里有个Python脚本,核心功能是调用Orca——就调用了三次,其中两次是print("loading...")。 门口那只猫又来了,瘦得肋骨都支棱着,跳上冰柜顶,尾巴尖扫过散热孔。老陈后来每月来两次,每次点一碗红糖芋圆,不加椰奶——他闻不出椰奶和凉白开区别,只认得出芋圆在碗底沉没的声音。有次他摸着碗沿问我:“你们店里WiFi密码多少?我回去想把语音导航连上小爱同学。”我说你连小爱干啥?他说:“它能帮我订明天早上的轮椅出租,上次那个司机迟到四十分钟,我蹲在路口等,旁边卖煎饼的大姐递我一张纸巾擦汗——可我没出汗。” 上周三,另一个常来的客人小吴,坐轮椅的,做AI数据标注,天天扛个旧ThinkPad来充电。他听我讲起这事,冷笑:“零配置?我上周试了个国产信创发行版,装完语音助手,要先装‘国密证书信任库’,再手动导出CA链,最后输入三次管理员密码,密码格式还得符合《GB/T 22239-2019》第5.3.2条。”他说完就推门出去了,轮子碾过台阶缝隙时咯噔一声,像骨头错位。我追出去喊:“芋圆给你多放两颗!”他头也没回,只挥了下手,袖口蹭掉一小块黑漆,露出底下锈迹。 房东昨天又来了,站在门口看我修门帘滑轨,手上油还没洗,指甲缝里是黑的。他指着隔壁新开的“云智辅具体验馆”说:“人家展柜里摆着AR眼镜、脑电波控制器,墙上挂满红锦旗,‘助力残障家庭幸福生活’——你们这儿就贴张A4纸,打印‘免费帮装Linux语音’,墨盒都快干了。”我没吭声,蹲下去拧最后一颗螺丝,扳手滑了两次,食指关节磨破点皮。他叹口气:“反正没剩几个。” 其实最赔钱那回,是上个月试推“无障碍双语菜单”——粤语+普通话语音点餐。我花三百八买了个录音笔,录了十七道菜名,结果发现“豉汁蒸凤爪”四个字,粤语读法连我们本地阿姨都分不清是“zhi”还是“ci”,更别说合成语音了。上线第三天,一个老客户打电话来骂,说语音报菜名报成“翅汁争疯爪”,他儿子听见后笑抽过去,哮喘发作送了急诊。我当天就把页面下了,退款退了两百多吧,够呛。那支录音笔现在搁收银机底下,电池漏液,把一沓发票黏成坨。 前几天老陈发我截图,是他用语音导航自己配好了家里的智能家居。截图里一行命令行输出:“/dev/ttyUSB0 connected to HomeAssistant via zeroconf — OK. Speaking: ‘灯已打开,当前温度24℃’。”底下没截图,但我知道他手机相册里存着张照片:他女儿举着平板,画面上是个笑脸emoji,后面写着“爸爸今天自己开了灯”。他没发我,我是在他微信朋友圈偶然翻到的,九宫格中间那张,拍的是窗台绿萝新抽的卷须,缠住了遥控器一角。
文章配图,仅供参考 优胜劣汰——不是说谁代码牛谁活下来。是说当你在终端里敲下sudo apt install espeak-ng,系统弹出个“是否安装推荐依赖”的时候,有人会真去查debconf日志里那一千行warning里哪一行在阻止语音流同步,而另一拨人已经拿着标书去改PPT里“智能感知”那页的配图了。老陈说他去年装的第三个Linux发行版,前两个死在驱动签名上,第三个,就这个零配置包,是他在一个芬兰论坛帖子里扒出来的,帖子标题就一行:“If it speaks before you type — keep it.” 冰柜压缩机又响了。我抬头看了眼门口那只猫,它舔了舔前爪,跳下去,尾巴一甩,消失在对面水果摊堆的荔枝箱后面。老张刚走,打火机还在我耳朵上夹着,没还。我伸手摸了摸,烫的。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


Linux新手避坑指南:5年运维老手亲授安装配置
Linux环境搭建太慢?3步绕过90%配置陷阱
Linux深度学习环境搭建:16年Ruby工程师的排障实录
Linux老手也常踩的5个Unix环境搭建坑
嵌入式Linux开发者Unix环境搭建避坑指南
Linux安全环境搭建:16年日志工程师实战指南
Linux数据库环境搭建:七步稳定上线实操