在近三十年的发展中,Linux 先后衍生出了众多发行版本,也就是基于 Linux 内核的操作系统,妇孺皆知的 Android 系统自不必说,我们耳熟能详的 Ubuntu、CentOS 与 Debian 等常见的版本主要用于系统服务器,也有Kali、BackBox 这类专门用于信息安全的版本,此外还有 Fedora、OpenSUSE、麒麟和深度等各种各样的发行版。如此众多并且功能专注不同的 Linux 发行版本,本已让人见怪不怪,但是当听说还有一种专为视力障碍人士而生的 Linux 时,还是让人兴奋与惊奇。
看这个图片,再结合 eGuideDog Linux 这个操作系统名字,相信熟悉 Linux 的读者马上就能明白其中的含义。Linux 标志是一只企鹅,而导盲犬能够为视障人士服务,给他们带去光明,这个图片作为项目 logo,寓意 eGuideDog 是为视障人士定制的 Linux 操作系统。
查阅相关资料之后,我们对 eGuideDog Linux 的诞生背景与开发者产生了浓厚的兴趣,并相信这也会为读者带来一些感动与启示,于是我们采访了项目作者黄冠能。本文由采访整理而成。
eGuideDog,Linux 界的导盲犬
百度百科上对于视障的解释是:视觉障碍简称视障,广义而言,如果个人需透过辅助器具如眼镜、放大镜等才能看清楚东西,就称为视障者,也就是说视障其实不等于完全看不见。既然本文讲计算机操作系统,那么以使用计算机为例,视障可以分为两种,一种是只能看见比较大的字,需要借助放大镜软件把屏幕内容局部区域放大显示来操作计算机,也就是视障中的“弱视”;另一种是完全看不见——全盲,需要借助读屏软件来操作计算机,读屏软件会把屏幕焦点所在的内容通过语音合成软件输出。
总结起来,使用放大镜和读屏软件就基本上是视障人士操作计算机仅有的方式了。相比之下,能够使用放大镜进行阅读的视障人士在使用计算机时遇到的困难可能没有全盲者那么复杂。全盲视障者主要是通过键盘快捷键在屏幕上不同窗口、菜单、按钮等区域之间进行切换,同时读屏软件会把获得的焦点上的文字读出来,让文字以语音的形式被消化。对于大段的文字,会有快捷键控制上一行、下一行等导航浏览。这其中主要涉及到文字转语音、人机交互等关键技术。
其实在 Windows、Mac 和 Linux 中,都有放大镜软件和读屏软件,只是一般没有需求,我们也就不会关注到。像 Windows 环境有一款著名的开源读屏软件 NVDA,Ubuntu 上也有读屏软件 Orca。
eGuideDog Linux 是在上游 Ubuntu 基础上专门为视障人士定制的操作系统,同时也是第一个专门针对中国视障人士而做的 Linux 发行版。它集成了一系列专为视障人士设计和改造的应用程序,包括中文语音合成引擎、天气查询软件、输入法、读屏软件等,使得视障人士也能够像明眼人一样使用 Linux 的各种功能,体验互联网的精彩。
“但是它并不是一款创新型产品,并非以一种前所未有的方式让视障人士使用计算机,而只是帮助中国视障人士跨越使用 Linux 的障碍。”黄冠能解释,其实国外也有一些类似的项目,比如 Vinux Linux。
中国的视障人士使用 Linux 会遇到两个比较大的难题,一个是语言问题,目前流行的 Linux 发行版本其实也有一些自带读屏软件的,甚至软件中心也有一些为视障人士设计和改造的应用供下载,但是对中文支持并不友好。如前边所说,Ubuntu 上有读屏软件 Orca,所以如果懂英文,当读屏软件将文字信息以英文读出时能够听懂,那么视障者使用 Ubuntu 就能够很好地对计算机进行操作,然而前提是要能听懂英文。反过来说,其实就是 Linux 环境下,普遍缺乏对中文语音合成软件、中文输入法等工具的读屏支持,或者功能并不强大。
另一方面,系统友好性问题。还是以 Ubuntu 为例,由于它毕竟不是针对视障人士专门设计的,那么系统不会在一启动的时候就提供读屏功能,也就意味着视障者不可能像明眼人一样从头到尾清楚系统当前的状态。然而这初始的一步是很重要的,如果视障者不能从一开始就清楚系统当前所处的状态,那么对于后边的操作都很不利。最简单的情况是,操作者根本不知道系统有没有在启动的时候出了问题卡在某处做自我检查,而检查的时间多长也没法确定,也就是与系统处于“失联”状态。
eGuideDog 有力地弥补了这两个大问题,这也正是它的价值。
至于为什么是做一个命令行的 Linux 而不是做类似 Windows 以可视化界面为主的操作系统,黄冠能表示:“从技术的角度来看,我之所以认为视障人士使用 Linux 更有好处,是因为觉得命令行更适合视障人士使用,图形界面在实现过程中难免有读屏软件无法访问的情况。”
例如图形界面中某个按钮用一个图片来显示,没有描述文本,或者该按钮无法用键盘快捷键来获取焦点,那么读屏软件也无能为力。然而,在命令行里这样的问题是不存在的,命令行里纯文字,那么它就能被一字一词地读出来。
现实生活中视障者也确实困惑于此类问题,他们反反复复写信希望各主流软件改进软件可访问性,促使读屏软件不断升级去支持新的图形界面设计。然而,思考一下根本性问题,视障人士本身不能够,也不需要图形化界面“花花世界”的感受,那么这样不断去迭代图形系统中的读屏软件可访问性,不仅治标不治本,还造成了不必要的成本开销。
缘起
“我读本科的时候,很喜欢自由软件,对操作系统怎么实现很着迷,梦想着有一天可以发布一个自己制作的 Linux,那几年,我一直尝试使用各个版本的 Linux,包括 Gentoo 和 LFS,也尝试去读操作系统的源码,包括 Minux 和《莱昂氏 UNIX 源代码分析》”,谈及初衷,黄冠能表示:“2006年研究生期间,12月份要做毕业论文,我当时觉得花几个月时间去写一篇学位论文只为拿一个学位,很浪费生命。我想了个可以一直继续做下去的题目,而不仅仅为了学位,我要做一个给盲人用的浏览器。”
黄冠能的想法是用 Perl 语言写一个命令行界面的浏览器,支持语音接口,并引入一些智能的分析逻辑,例如将用户自动定位到主要内容区域、抽取内容摘要等。
此时,eGuideDog 项目正式诞生。“没有什么大情怀,我也不是因为很系统地了解中国视障群体的信息之后才决定去做这个项目,这完全是因为当时的技术能力驱动的吧。而且事实上,我在两年后还停止了这个浏览器的开发维护。”
黄冠能说他其实并没有仔细去调查中国有多少视障人士,他们年龄分布如何,可能会使用计算机的年轻人占比具体有多少,他只是简单地说一切缘于一次毕业论文,缘于一个不想浪费生命的想法,然而,他还是很明白中国约2000万视障人士在互联网时代的不便,而且还在不断地“浪费”着他自己的生命去持续做着这件事,一做就是10余年。
一个人的路途
eGuideDog 项目开始后,所有的事情都落到黄冠能一个人身上,他说:“这个项目只有我一个人在长期业余地在做,偶尔会有人给 Ekho TTS(Text To Speech)贡献新的声音。”
在这个过程中,他的主要工作围绕在解决中文用户特有的问题这个大方向上,他也表示虽然 eGuideDog 是基于 Ubuntu 的操作系统,但是他所做的工作其实不需要对 Ubuntu 系统层面进行修改。
中文语音合成软件
我发现没有开源的中文语音合成软件,于是计划朝着这个方向进行研发。我读本科的时候除了修得计算机学位,还修了英语。我的英语在毕业的时候是通过了专业八级的,可以说,我对语言学颇感兴趣,并且有一定敏感的。于是,我开始对语音合成器 eSpeak 做粤语支持,并在之后几年不断花时间去完善和修订粤语词典。粤语是我的第一母语。
eSpeak 的模型决定了它发音比较生硬,像个机器人,读中文时也像个外国人在读。于是我决定做 Ekho TTS,后来陆续支持了粤语、普通话、诏安客语、韩语(不完整)、藏语、雅言、广东台山话。我发现,在所有操作系统平台中,Ekho 貌似是唯一支持藏语的 TTS,可能是因为用户太少,商业软件也不愿意花资源去制作吧。
输入法读屏
除了 TTS(Text To Speech),eGuideDog Linux 另一个需要解决的问题是输入法读屏。Linux 下的读屏软件 Orca 一开始是不支持中文输入法读屏的,为了解决这个问题,我尝试 hack Orca 和输入法框架 IBus,我已经不记得我做了多少尝试。我一直只是业余地做 eGuideDog 项目,没有那么多精力去精通一个又一个开源软件,做这个输入法读屏支持是让我比较烦恼的。
我也不记得为了区分同音字,当时是怎样把 ibus-pinyin 的代码更改了,现在让我再做一次恐怕做不出来,我让它在显示候选字的时候把每个字都组个词读出来,让视障人士知道候选字具体是哪个。
过了两年,ibus-pinyin 的接口从 Python 2 升级到 Python 3,相关修改要重新实现,我当时又痛苦地 hack 了一次。再过了两年,Orca 终于能把输入法控件部分读出来了,后来又做了一些改进,使得 Orca 可以支持了中文输入法读屏。
编写教程
用户使用 eGuideDog Linux 之前很可能是完全没有 Linux 基础的,这一点很正常,现在如果不是黑客、程序员等专业人员需要,很少有人会知道 Linux,大家对于电脑的操作习惯很主要是基于 Windows。市面上也没有教视障人士怎样使用 Linux 的教程,因此我需要编写一些基本的教程来帮助他们了解 Linux 的一些使用。
第一版的《Linux盲人教程》是在2015年编写的,这个教程有文字和录音讲解。视障用户其实是可以访问文字内容的,因为我假设用户已经懂得怎样通过读屏软件使用 Windows。如果这一点假设不成立,那么这个教程就需要教用户怎样使用键盘,键盘上有些什么键,这不是我需要做的事情。
这个版本的录音做得并不好,它基本上只是把文字读出来,而没有做更形象的演示。不过即便是这样也是很花时间的,因为我并不是一个口齿伶俐的播音员,要把整个过程做得清晰流畅也花了不少时间。录制过程主要使用了 Audacity 音频处理软件。我觉得未来的教程应该像做慕课(MOOC)一样做。
收到用户问题反馈之后,我也在不断编写新的教程文档,未来一段时间我会基于 LPI(Linux Professional Institute)的大纲内容去编写更系统的 Linux 教程,目前已经整理了一部分在我的个人博客里。
2013年7月,Ekho TTS 终于发展到可以对接 Linux 读屏软件的程度,输入法读屏的问题得到解决,黄冠能一直欠缺的 Linux 定制打包的相关知识也在这个时候补上了。于是他正式推出了 eGuideDog Linux 发行版。在此之后,每当 Ubuntu 推出一个新的 LTS 版,黄冠能就跟进发布一个新的 eGuideDog 版本,目前编号为0.5的最新版已经是第五个版本。
“总的来说,我所做的研发工作主要是实现了 Ekho TTS、实现中文输入法的读屏支持,然后把整个安装和使用流程都走一遍,把有访问困难的地方做调整配置,并编写相关教程。另外,Ubuntu 及相关开源软件本身有不少 bug,我需要不时去联系开源社区相关维护人员去商讨解决的办法。”黄冠能总结。
此外,eGuideDog 项目中还包括了 eGuideDog 奖学金、WebAnywhere、WebSpeech 等部分,这些不属于操作系统本身,但是在整个项目中也意义重大。
eGuideDog 奖学金
eGuideDog 奖学金是一个试探性的项目,目前还没有产生什么效果,也还没有视障人士来正式申请。我希望通过这个奖学金,可以把一些编写教程的工作交由视障者群体本身来完成,毕竟他们更加深知自己的体验需求,可以把教程做得更好。
同时我希望可以在这个过程中认识一些技术比较好的视障人士,挖掘他们的能力,并不断深造。也许这个奖学金的获得者就是一个人才库,将来社会条件成熟到能够为视障群体提供一些 Linux 相关的工作机会的时候,那么这里就有一些现成的专业人才。
WebAnywhere
WebAnywhere 是过去美国华盛顿大学的一项研究,为了让盲人可以在一台没有安装任何特殊软件的计算机上浏览网页。这个软件本身是一个网站,一个可以为用户代理访问其它网站的网站,并提供语音辅助。对于盲人来说,没有安装读屏软件的电脑是完全不能使用的。但如果有了这个软件(网站),盲人就可以用一个普通的电脑上网浏览资料。
这个项目是开源的,于是我为这个软件添加了多国语言支持的机制,并且在2010年的时候购置了一台独立的服务器主机为中文用户提供服务。过了两年,由于觉得没有什么人在实际使用,于是停止了维护。虽然停止了维护,但我觉得这项技术还是很有价值的,它没有实际应用起来也许只是时机不成熟,希望之后可以有机会重新启动它。
WebSpeech
WebSpeech 的诞生来自于英国的一个项目,当时有个英国公司在投标一个英国政府的无障碍项目,做一个给视障人士用的电子图书馆网站。项目的经理找我来帮助开发语音相关的功能,以及一些电子文档格式转换工具。
于是我做了 WebSpeech,WebSpeech 是一个 JavaScript 库,可以为网站提供语音支持,技术上一定程度上借鉴了 WebAnywhere。据我了解,中国政府网站一般要求提供无障碍技术的支持,而这其中有部分网站背后是有使用 WebSpeech 技术的,同时也有不少其它需要用到语音功能的应用会用到这个库。我自己平时写一些带语音功能的电子书之类的小应用也经常用到这个库。
其实随着项目的一步步发展, eGuideDog 对于黄冠能而言已经不再像最开始那样只是“纯技术上的实现某个功能”了,他逐渐寄希望于 eGuideDog,“希望它可以为中国的视障人士使用 Linux 扫除障碍”,更具体的,他所做的一切是为了让视障人士用户从插入安装盘开始,能够独立地、比较顺畅地完成安装并且0障碍使用。
eGuideDog 项目虽然得到过不少人的支持,但是实际上并没有志愿者加入到长期维护的队伍中。除了技术上一个人在坚持,黄冠能也表示,项目并没有得到过多少资金支持,极少数的志愿者捐助的小小金额甚至远不足以弥补服务器的开销。
然而,“这条路只有我一个人的情况,这都在我当初的风险预测范围内”,黄冠能很坚定地说:“我打算花我个人几十年的时间来开展这个项目。我觉得花我一个人几十年的时间能为几千万人的生活带来重要改善是非常值得的。”
道阻且长
一个人的路途并不好走,这条路上困难重重。除了前边提到的研发上遇到的困难,还有整个市场反馈的问题。虽然经过了这么多年的发展,eGuideDog Linux 系统的各方面都在不断进步,整个生态也朝着好的方向发展,但是摆在面前的现实是,目前 eGuideDog Linux 的用户还是很少,总结起来有几个方面的原因:
驱动不足
可以自由使用 Linux 对于视障人士来说并不是很必要的需求,或许他们使用计算机只是需要看个视频、刷刷论坛,但抛开这些日常生活娱乐需要,计算机对于他们工作上的作用并不大,黄冠能认为,在众多类型的残障中,失明的障碍算是比较好就业的,远的算命不说,近的可以看到盲人正骨、说书、演奏和写作等名家倍出。失去“就业”动机,就使得“视障人士使用计算机”的命题意义大减,这成了使用 eGuideDog 人数不多的一大原因。
入门门槛高
Linux 相比 Windows 和 macOS,在日常生活中的普及程度并不高,黄冠能认为目前来看 Linux 始终都是极客专用的系统,最多也只是会慢慢成为程序员的必修课。它的专业性比较高,需要经过一定程度系统性地学习才能掌握,别说视障人士用起来会有困难,就连一般程序员都望而生畏。
宣传不足
对 eGuideDog 项目的宣传是明显不足的。黄冠能表示,他一个人在维护着这一个项目,虽然平时有订阅视障人士相关的期刊,有关注个别视障团体,偶尔还会接触来自大陆、港台及外国的视障人士,但是他很难有精力和条件去对视障群体的具体信息进行调查与研究,同时也无法去做相应的宣传工作。虽然无奈,但这是目前的困难。
使用人数不多,并不能很好地反映出视障人士不需要,对于黄冠能来讲,这是因为生态、宣传上做得还不够。他希望拓宽视障人士的就业场景,让他们可以在互联网时代也能通过电子机器展现自己的智慧;他也希望通过不断完善系统和各种软件的使用体验,并且做出更好的学习资料,让视障人士更加深刻地体会到 Linux 的美妙,而不是对其敬而远之。
道阻且长,然而黄冠能没有放弃。他说当他看到一位还在读小学的小朋友在使用 eGuideDog Linux 的时候,虽然很怜悯他的不幸,但是也觉得他很了不起,“一个有视力障碍的小朋友在读小学的时候就想到用 Linux,那么将来他肯定会很了解 Linux,至少是熟透它的基本操作,这对于他日后的生活和发展有很大的帮助。”黄冠能说。
他也了解到有使用者希望通过学习 Linux 去从事服务器维护相关的工作,在周围人告诉他这不现实的时候,他将盲人王永德研发永德读屏软件的事迹科普了一翻。黄冠能说这些都让他看到了坚持做 eGuideDog 这件事情的意义。
有视障朋友曾经略带偏激地告诉黄冠能,表示专门做给视障人士的软件大多缺乏维护,并不能长久。他觉得这是现实存在的问题,就连知名的 Vinux 目前也处于停滞的境况,Vinux 社区最近一封讨论邮件的内容是去年 Vinux lead develper 离开团队。但是正如黄冠能所说,他想做的 eGuideDog 是要花费他数十年去坚持的。
具体到接下来的工作计划,黄冠能表示主要有3个方面:
- 继续维护软件,修复一些 TTS 崩溃的问题,根据用户反馈做一些修改,也许会做些语音质量改进的工作。
- 重新编写 Linux 教程,在原有教程的基础上补充更完整的内容,让视障人士用户更容易上手 eGuideDog。
- 继续推广 eGuideDog 奖学金,希望从中培养一些优秀的学员。
道阻且长,我们希望黄冠能的坚持能收获更多,eGuideDog 这只导盲犬能不断带领更多人走向光明。
项目主页:http://www.eguidedog.net/cn/index.php
嘉宾介绍
黄冠能,珠海知未科技有限公司广州研发中心技术总监及联合创始人,从事基于 Web,面向中小学的教学平台产品研发。2005年获得华中科技大学计算机工学学士学位、英语文学学士学位,2007年获得中山大学软件理论工学硕士学位。曾任职于广东北电通信设备有限公司(Nortel)、优视动景公司(UC浏览器)。
转自 https://www.oschina.net/question/3820517_2280583