From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Tim Cross Newsgroups: gmane.emacs.devel Subject: Re: Package proposal: greader, an audio emacs reader for blind and dislexic people Date: Thu, 31 Jan 2019 08:31:10 +1100 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000936e6d0580b3a14a" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="14500"; mail-complaints-to="usenet@blaine.gmane.org" Cc: emacs devel To: Michelangelo Rodriguez Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Jan 30 22:31:42 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1goxSP-0003b2-SG for ged-emacs-devel@m.gmane.org; Wed, 30 Jan 2019 22:31:42 +0100 Original-Received: from localhost ([127.0.0.1]:44507 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1goxSO-0007N3-MZ for ged-emacs-devel@m.gmane.org; Wed, 30 Jan 2019 16:31:40 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:58337) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1goxSI-0007Mq-7B for emacs-devel@gnu.org; Wed, 30 Jan 2019 16:31:35 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1goxSG-0008Lj-AO for emacs-devel@gnu.org; Wed, 30 Jan 2019 16:31:34 -0500 Original-Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]:46802) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1goxSE-0008HE-AS for emacs-devel@gnu.org; Wed, 30 Jan 2019 16:31:31 -0500 Original-Received: by mail-oi1-x230.google.com with SMTP id x202so902424oif.13 for ; Wed, 30 Jan 2019 13:31:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gZZuIimtI3kLhsJ1YFXLxGAWh/zH1zNjCa2b8s98VoA=; b=Focr9HeuFwM3d7ERe8T99SfrSwseovfNqqIGNLDlfeG3nT91qrBiw2kJIcx8CnlPB/ GimrSSR/qM5EuoP6VrH6z22j3ZP13UjOHod4EVK9Tfgvkfs/0OaBywfoJcIjknRaHGbV RjKJsuAGursp26zS/7/zLEy5LdT6MymfN/21qqaPJJRcqzbhhKEliDvUvBE5aRpdBk0z CBlaEojL5tcrtgGH01Xl4p2jywImjVYXSjFA8ZU4wkWLIvB/MTYi4WTytd4bfq6W4y38 QOY9lVDE3PAQQQVcXrKAPO/zvXmANlKdOqFoYRHRf9ILbK3wcoTzNNLnfLVhmva0Sf4a LL6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gZZuIimtI3kLhsJ1YFXLxGAWh/zH1zNjCa2b8s98VoA=; b=ZumvurB6nHNVTuFkzVGWHIeq49rTVdtOP2LuNqx6klcgyetHqdqoNMcLdjnR5N+YaZ ZGE+Xlb0cvu9t9gZh7FrttlghWCJKSo636lOL6xQHFAqzMbUWwiIg7mciElaIB6VMtwF 36NaIBgCsWfR0FHNMrS14YGhsan8WgOfqVo082a9nky1oeesgsez76m+7H6r+677TrwU Cks2CubE7sCvhTqeb7H/CZ8gbVFd9W7bxcERNE5b/MiaCKWOe2sSEQVtopnY6oP14V71 vH8ghnCqbX0+a7aKk9hQq34LTNEBZT9l2ciD69c2W5FJ7HbMYU3/iCLawh/aGAsneNJl 6JWg== X-Gm-Message-State: AHQUAubCn8Dx748RXLNkRgU2Y6gAhp0ZwrU20nQVEPgvs9TZYCZJQ+rc 8zrxXHkXsCGWv30fmFWRgpkfzRFbsVp4E2jQT+Y= X-Google-Smtp-Source: ALg8bN7xNNQMSae3N8HCa7PK5aGt3f0nqDCngOz76T1DLfHVZdYWqPi2R4BWSrMuEZ50USnhKmzCG8ZUV+GVu0jAwOI= X-Received: by 2002:aca:d509:: with SMTP id m9mr13226387oig.82.1548883881845; Wed, 30 Jan 2019 13:31:21 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::230 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:232840 Archived-At: --000000000000936e6d0580b3a14a Content-Type: text/plain; charset="UTF-8" I'm not sure I follow. With the exception of the references to the back-end TTS, I don't see anything in your proposed package that the other packages don't already do. I can see that Emacspeak may be too sophisticated with too much additional functionality that is not needed, such as session information, but the primary purpose is to turn buffers into text. However, Emacspeak is somewhat 'invasive', so I can appreciate that it may be overkill for what you want. This is why I suggest you look at speechd.el, which does not modify Emacs behaviour to the extent of Emacspeak and essentially just takes buffer contents and sends them to speech-dispatcher. I would not discount speech-dispatcher as a possible backend. I find current versions stable and reliable. Having written a number of speech services in the past, I know first hand how complex implementing a reliable and functional interface is. There are a lot of hidden details which only become obvious when you start to use the system. For example, when reading a large buffer, being able to pause speech and restart from the position you paused at while at the same time, ensuring that text is sent in sufficiently large chunks to enable the TTS engine to turn it into good quality speech (chunk size is often critical to this), handling various UTF characters, filtering out text which you don't want spoken (consider a horizontal line of -----, do you want it to speak "horizontal line" or do you want it to say 'dash' 80 times or say nothing, what is the 'cuitoff' point ) etc. Implementing a proof of concept is fairly trivial, but implementing something robust and usable is much much harder. Tim On Wed, 30 Jan 2019 at 18:09, Michelangelo Rodriguez < michelangelo.rodriguez@gmail.com> wrote: > > > On Wed, 30 Jan 2019, Tim Cross wrote: > > > nIn addition to emacspeak, there is also a package called speechd.el, > which also does a similar thing, but uses speech-dispatcher. > > My question would be why create yet another package which appears to do > the same thing rather than contribute to one of the other packages - what > is it about your package that is fundamentally different to either > emacspeak (very > > comprehensive, robust and powerful, with a well developed underlying > philosophy/approach) and speechd.el (minimalist, simple and lower learning > curve)? > > > Hi, > Greader is not an accessibility tool for emacs. It is specialized on > reading contents of buffers, not in providing information about emacs > sessions. > Greader is based on back-ends architecture, so does not depend on a > single package (eg. on speech-dispatcher) that is known to be buggy, and > back-ends for espeak and speech-dispatcher are already provided. > Greader has the possibility to make "audiobooks", switable to be listened > with mobile devices. > In other words, greader serves a different purpose if compared to > emacspeak and speechd-el, that are indeed great packages. > Yes, i considered the iidea of integrating greader into one of those > packages, but it can result in a confusion, because as i sayd, that > packages are semantically different. > > > > On Tue, 29 Jan 2019 at 20:15, Michelangelo Rodriguez < > michelangelo.rodriguez@gmail.com> wrote: > > Hi All, > > I would to propose a package that reads countinuously a buffer, > using > > speech synthesis. > > It exists a package called emacspeak that makes emacs accessible, > but my > > package is somewhat different: > > It does not depend on emacspeak, and can use espeak or > speech-dispatcher > > to perform reading. > > It is my first package for emacs, and apart to make it available > to all, > > i'm interested on suggestions on how to make my code better. > > The project is at very earl stage of development, though it works > already. > > So, what is the next step? > > thanks to all for feedback. > > Michelangelo Rodriguez > > > > > > > > > > -- > > regards, > > > > Tim > > > > -- > > Tim Cross > > > > > > -- regards, Tim -- Tim Cross --000000000000936e6d0580b3a14a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I'm not sure I follow. With the exception of the refer= ences to the back-end TTS, I don't see anything in your proposed packag= e that the other packages don't already do. I can see that Emacspeak ma= y be too sophisticated with too much additional functionality that is not n= eeded, such as session information, but the primary purpose is to turn buf= fers into text. However, Emacspeak is somewhat 'invasive', so I can= appreciate that it may be overkill for what you want. This is why I sugges= t you look at speechd.el, which does not modify Emacs behaviour to the exte= nt of Emacspeak and essentially just takes buffer contents and sends them t= o speech-dispatcher.=C2=A0

I would not discount speech-d= ispatcher as a possible backend. I find current versions stable and reliabl= e. Having written a number of speech services in the past, I know first han= d how complex implementing a reliable and functional interface is. There ar= e a lot of hidden details which only become obvious when you start to use t= he system. For example, when reading a large buffer, being able to pause sp= eech and restart from the position you paused at while at the same time, en= suring that text is sent in sufficiently large chunks to enable the TTS eng= ine to turn it into good quality speech=C2=A0 (chunk size is often critical= to this), handling various UTF characters, filtering out text which you do= n't want spoken (consider a horizontal line of -----, do you want it to= speak "horizontal line" or do you want it to say 'dash' = 80 times or say nothing, what is the 'cuitoff' point ) etc. Impleme= nting a proof of concept is fairly trivial, but implementing something robu= st and usable is much much harder.

Tim
=
On Wed, 30 Jan 2019 at 18:0= 9, Michelangelo Rodriguez <michelangelo.rodriguez@gmail.com> wrote:


On Wed, 30 Jan 2019, Tim Cross wrote:

> nIn addition to emacspeak, there is also a package called speechd.el, = which also does a similar thing, but uses speech-dispatcher.=C2=A0
> My question would be why create yet another package which appears to d= o the same thing rather than contribute to one of the other packages - what= is it about your package that is fundamentally different to either emacspe= ak (very
> comprehensive, robust and powerful, with a well developed underlying p= hilosophy/approach) and speechd.el (minimalist, simple and lower learning c= urve)?
>
Hi,
Greader is not an accessibility tool for emacs. It is specialized on
reading contents of buffers, not in providing information about emacs
sessions.
Greader is based on back-ends architecture, so does not depend on a
single package (eg. on speech-dispatcher) that is known to be buggy, and back-ends for espeak and speech-dispatcher are already provided.
Greader has the possibility to make "audiobooks", switable to be = listened
with mobile devices.
In other words, greader serves a different purpose if compared to
emacspeak and speechd-el, that are indeed great packages.
Yes, i considered the iidea of integrating greader into one of those
packages, but it can result in a confusion, because as i sayd, that
packages are semantically different.
>
> On Tue, 29 Jan 2019 at 20:15, Michelangelo Rodriguez <michelangelo.rodri= guez@gmail.com> wrote:
>=C2=A0 =C2=A0 =C2=A0 =C2=A0Hi All,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0I would to propose a package that reads coun= tinuously a buffer, using
>=C2=A0 =C2=A0 =C2=A0 =C2=A0speech synthesis.
>=C2=A0 =C2=A0 =C2=A0 =C2=A0It exists a package called emacspeak that ma= kes emacs accessible, but my
>=C2=A0 =C2=A0 =C2=A0 =C2=A0package is somewhat different:
>=C2=A0 =C2=A0 =C2=A0 =C2=A0It does not depend on emacspeak, and can use= espeak or speech-dispatcher
>=C2=A0 =C2=A0 =C2=A0 =C2=A0to perform reading.
>=C2=A0 =C2=A0 =C2=A0 =C2=A0It is my first package for emacs, and apart = to make it available to all,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0i'm interested on suggestions on how to = make my code better.
>=C2=A0 =C2=A0 =C2=A0 =C2=A0The project is at very earl stage of develop= ment, though it works already.
>=C2=A0 =C2=A0 =C2=A0 =C2=A0So, what is the next step?
>=C2=A0 =C2=A0 =C2=A0 =C2=A0thanks to all for feedback.
>=C2=A0 =C2=A0 =C2=A0 =C2=A0Michelangelo Rodriguez
>
>
>
>
> --
> regards,
>
> Tim
>
> --
> Tim Cross
>
>
>


--
regards,
Tim

--
Tim Cross

--000000000000936e6d0580b3a14a--