--000000000000ce31010593a683ed Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Simion, Ok, looking at qtspeech code a bit today and all implementations of say() in every plugin are implemented to first cancel any currently speaking text before saying the new text. I think in order to add a queuing ability QtSpeech itself will need to add another method called speakNext or something to add items to the list of text to be synthesized since say() is implemented in this way on purpose it seems. Should be doable assuming most platforms support that functionality, those that don't if any could be implemented in the QtSpeech itself if needed. BR, Jeremy On Sat, Sep 28, 2019 at 8:34 AM Jeremy Whiting wrote: > Hi Simion, > > I hadn't thought of queueing the jobs. Jovie did that and had a complex > user interface for cancelling jobs and moving to the next job, etc. > Speech-dispatcher supports that, but I don't want to make the user > interface too complex. I'll take a look at how QtSpeech's speech-dispatch= er > plugin sets things up. If I remember right there are different modes > speech-dispatcher can use, read directly where everything is spoken > immediately, or queue where new jobs go to the end of the line. I think > most other platforms just speak everything directly (the android, windows > and macos qtspeech plugins) if so and if we want to add queueing to klipp= er > we'll likely need QtSpeech to expose the mode switching ability (and do > nothing on the platforms that don't support it) and use it in klipper. > > BR, > Jeremy > > On Fri, Sep 27, 2019 at 11:48 PM Simion wrote: > >> Hi Jereymy >> >> I think Jovie had no default shortcuts, we set them ourselves . >> >> Will klipper have a queue ? So you can have more then one thing schedule= d >> to be spoken one after the other? >> >> >> On 9/28/19 3:56 AM, Jeremy Whiting wrote: >> >> Awesome, good to know. >> >> Also, I got a good start on the klipper ability to speak clipboard today >> and found there are a couple of options available from what I can tell. = I >> can either make it speak the clipboard, speak the current text selection >> (like macos option-escape does when enabled) or both each with their own >> shortcut key. I'm thinking I'll make it disabled by default but when >> enabled both actions will be available with a default shortcut of >> meta-escape for speak selected text and some other keyboard shortcut for >> speak clipboard. Are there any preferred shortcuts you all use with Jovi= e >> to speak clipboard? I figured I'd make stop and pause/resume actions als= o >> like I did for okular, but likely without keyboard shortcuts by default = for >> these, though I'm open to suggestions if there's a reason to have a defa= ult >> shortcut for these also. >> >> Since plasma 5.17 feature freeze already happened the klipper changes >> wont be in plasma until 5.18 which freezes in January of next year >> unfortunately, but it will be good to have this Jovie replacement in pla= ce >> I think. >> >> BR, >> Jeremy >> >> On Fri, Sep 27, 2019 at 6:41 PM Gustav Degreef >> wrote: >> >>> Thanks a lot Jeremy. I am about to travel, so I will post back about m= y >>> results in a bit. >>> >>> I am using opensuse 15.0, kde plasma version 5.12.8, frameworks 5.45.0, >>> Qt 5.9.4, kernel 4.12.14-lp150.12.70-default >>> >>> Gustav >>> >>> On 9/26/19 10:32 PM, Jeremy Whiting wrote: >>> > Hi Gustav, >>> > >>> > Just out of curiosity, which distribution and version of linux are yo= u >>> > using? >>> > >>> > To answer your question though, crontab is an application that runs >>> > things at different times on a unix based system. crontab -e is a >>> > command to edit the cron table of commands. Running crontab -e and >>> > adding the line you mentioned: >>> > >>> > @restart /usr/bin/festival --server >>> > >>> > will make festival --server run at each boot of the computer I believ= e. >>> > >>> > Hope that helps. Another possibility according to arch linux's wiki >>> > https://wiki.archlinux.org/index.php/Festival#Can't_open_/dev/dsp is >>> > to add some lines to the festival configuration to allow it to open >>> > the /dev/dsp >>> > >>> > BR, >>> > Jeremy >>> > >>> > On Thu, Sep 26, 2019 at 7:25 PM Gustav Degreef >> > > wrote: >>> > >>> > Hello folks, >>> > >>> > I edited this thread some to make it easier to follow my current >>> post. >>> > It is not directed at Simion, though his comments are helpful to >>> > make my >>> > post clearer.=C3=82 >>> > As a result of these discussions I have more clearly understood >>> > the role >>> > of speech-dispatcher.=C3=82 Since will be used with Qtspeech, it= makes >>> > sense >>> > to work with it. =C3=82 So,=C3=82 Perching with google=C3=82 I= understood how >>> > central >>> > speech-dispatcher is to linux TTS.=C3=82 I tried again to config= ure >>> > Festival >>> > with speech-dispatcher.=C3=82 I want to try and configure a diff= erent >>> > voice.=C3=82 >>> > I wan to try and experiment with different voices.=C3=82 Espeak = is OK, >>> > but I >>> > feel I have to move forward.=C3=82 But again I am stuck.=C3=82 = Here is >>> > where I am at. >>> > >>> > I could never get speech output even on the CLI. >>> > >>> > The error I would get was -festival: can't open /dev/dsp >>> > >>> > It is due to a bug.=C3=82 =C3=82 The workaround is: >>> > Create ~/.festivalrc with the following content >>> > >>> > ;use ALSA >>> > (Parameter.set 'Audio_Method 'Audio_Command) >>> > (Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR >>> > $FILE") >>> > >>> > >>> > I then needed to configure speech-dispatcher, so I ran: >>> > >>> > spd-conf >>> > >>> > as a regular user.=C3=82 It creates the speech-dispatcher global= server >>> > configuration file: >>> > >>> > in ~/.config/speech-dispatcher/|speechd.conf| >>> > >>> > This configures speech-dispatcher (interactively) with a number o= f >>> > variables, the default voice is espeak. >>> > >>> > I then edit speechd.conf, which allows for many different >>> > voices.=C3=82 I change: >>> > >>> > |#AddModule "espeak" "sd_espeak" "espeak.conf"|| >>> > | >>> > |AddModule "festival" "sd_festival" "festival.conf"| >>> > | >>> > | >>> > |and| >>> > |||| >>> > >>> > |#DefaultModule espeak | >>> > >>> > |DefaultModule festival The next step I do not understand: "|We >>> > need to run |festival| as a server in order to make >>> > |speech-dispatcher| use it as default. We can do that by adding >>> > the following line at the end of the file that's open when we use >>> the >>> > command: |sudo crontab -e|: >>> > >>> > |@reboot /usr/bin/festival --server"| >>> > >>> > |||I can't understand the last step.=C3=82 I've never used cront= ab >>> > fore, any >>> > help would be appreciated, Gustav.| >>> > || >>> > >>> > || >>> > >>> > >>> > >>> > On 9/22/19 9:29 AM, Simion wrote: >>> > >>> > >>> > snip >>> > >>> > > As I said I suggest to get used of using faster and faster >>> voices, >>> > > your family will understand and you will read same texts 2 time= s >>> > > faster so you gain time, at that speed any voice will sound >>> robotic, >>> > > this would not work if you want other to listen with you (but >>> > you can >>> > > have a normal speed and a fast speed talker in jovie) >>> > > >>> > > >>> > > On 9/22/19 2:54 PM, Gustav Degreef wrote: >>> > >> >>> > >> snip >>> > >> >>> > >> =C3=83=E2=80=9A=C3=82 From what you and others are saying and = from what I've >>> > read, I think I >>> > >> understand better.=C3=83=C6=92=C3=A2=E2=82=AC=C5=A1=C3=83=E2= =80=9A=C3=82 Correct me if I am wrong, but don't >>> > you have >>> > >> to tell >>> > >> speech-dispatcher which voice (e-speak, festival, etc.) to >>> > use?=C3=83=C6=92=C3=A2=E2=82=AC=C5=A1=C3=83=E2=80=9A=C3=82 If I >>> > >> can figure out how to tell speech-dispatcher which voice to us= e >>> > then >>> > >> Jovie (or Qtspeech) will then output my choice?=C3=83=C6=92=C3= =A2=E2=82=AC=C5=A1=C3=83=E2=80=9A=C3=82 I have >>> > looked >>> > >> into it, >>> > >> and there are several (about 6 different) voices I can use in >>> > Linux. >>> > >> >>> > >> >>> > >> >>> > >>> >>> --000000000000ce31010593a683ed Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Simion,

Ok, looking at qtspe= ech code a bit today and all implementations of say() in every plugin are i= mplemented to first cancel any currently speaking text before saying the ne= w text. I think in order to add a queuing ability QtSpeech itself will need= to add another method called speakNext or something to add items to the li= st of text to be synthesized since say() is implemented in this way on purp= ose it seems. Should be doable assuming most platforms support that functio= nality, those that don't if any could be implemented in the QtSpeech it= self if needed.

BR,
Jeremy

On S= at, Sep 28, 2019 at 8:34 AM Jeremy Whiting <jpwhiting@kde.org> wrote:
Hi Simion,

I hadn't thought of queueing the jobs. Jovie did that and had = a complex user interface for cancelling jobs and moving to the next job, et= c. Speech-dispatcher supports that, but I don't want to make the user i= nterface too complex. I'll take a look at how QtSpeech's speech-dis= patcher plugin sets things up. If I remember right there are different mode= s speech-dispatcher can use, read directly where everything is spoken immed= iately, or queue where new jobs go to the end of the line. I think most oth= er platforms just speak everything directly (the android, windows and macos= qtspeech plugins) if so and if we want to add queueing to klipper we'l= l likely need QtSpeech to expose the mode switching ability (and do nothing= on the platforms that don't support it) and use it in klipper.

BR,
Jeremy

On Fri, Sep 27, 2019 at 11:= 48 PM Simion <s= imion314@gmail.com> wrote:
=20 =20 =20

Hi Jereymy

I think Jovie had no default shortcuts,=C2=A0 we set them ourselves = .

Will klipper have a queue ? So you can have more then one thing scheduled to be spoken one after the other?


On 9/28/19 3:56 AM, Jeremy Whiting wrote:
=20
Awesome, good to know.

Also, I got a good start on the klipper ability to speak clipboard today and found there are a couple of options available from what I can tell. I can either make it speak the clipboard, speak the current text selection (like macos option-escape does when enabled) or both each with their own shortcut key. I'm thinking I'll make it disabled by defau= lt but when enabled both actions will be available with a default shortcut of meta-escape for speak selected text and some other keyboard shortcut for speak clipboard. Are there any preferred shortcuts you all use with Jovie to speak clipboard? I figured I'd make stop and pause/resume actions also like I did for okular, but likely without keyboard shortcuts by default for these, though I'm open to suggestions if there's a reason= to have a default shortcut for these also.

Since plasma 5.17 feature freeze already happened the klipper changes wont be in plasma until 5.18 which freezes in January of next year unfortunately, but it will be good to have this Jovie replacement in place I think.

BR,
Jeremy

On Fri, Sep 27, 2019 at 6:41 PM Gustav Degreef <gustav97@gmail.com> wrote:
Thanks a lot Jeremy.=C2=A0 I am about to travel, so I will post back abo= ut my
results in a bit.

I am using opensuse 15.0, kde plasma version 5.12.8, frameworks 5.45.0,
Qt 5.9.4, kernel 4.12.14-lp150.12.70-default

Gustav

On 9/26/19 10:32 PM, Jeremy Whiting wrote:
> Hi Gustav,
>
> Just out of curiosity, which distribution and version of linux are you
> using?
>
> To answer your question though, crontab is an application that runs
> things at different times on a unix based system. crontab -e is a
> command to edit the cron table of commands. Running crontab -e and
> adding the line you mentioned:
>
> @restart /usr/bin/festival --server
>
> will make festival --server run at each boot of the computer I believe.
>
> Hope that helps. Another possibility according to arch linux's wiki
> https://wiki.arc= hlinux.org/index.php/Festival#Can't_open_/dev/dsp is
> to add some lines to the festival configuration to allow it to open
> the /dev/dsp
>
> BR,
> Jeremy
>
> On Thu, Sep 26, 2019 at 7:25 PM Gustav Degreef <gustav97@gmail.com
> <mailto:gustav97@gmail.com>> wrote:
>
>=C2=A0 =C2=A0 =C2=A0Hello folks,
>
>=C2=A0 =C2=A0 =C2=A0I edited this thread some to make it easi= er to follow my current post.
>=C2=A0 =C2=A0 =C2=A0It is not directed at Simion, though his = comments are helpful to
>=C2=A0 =C2=A0 =C2=A0make my
>=C2=A0 =C2=A0 =C2=A0post clearer.=C3=82=C2=A0
>=C2=A0 =C2=A0 =C2=A0As a result of these discussions I have m= ore clearly understood
>=C2=A0 =C2=A0 =C2=A0the role
>=C2=A0 =C2=A0 =C2=A0of speech-dispatcher.=C3=82=C2=A0 Since w= ill be used with Qtspeech, it makes
>=C2=A0 =C2=A0 =C2=A0sense
>=C2=A0 =C2=A0 =C2=A0to work with it. =C3=82=C2=A0 So,=C3=82= =C2=A0 Perching with google=C3=82=C2=A0 I understood how
>=C2=A0 =C2=A0 =C2=A0central
>=C2=A0 =C2=A0 =C2=A0speech-dispatcher is to linux TTS.=C3=82= =C2=A0 I tried again to configure
>=C2=A0 =C2=A0 =C2=A0Festival
>=C2=A0 =C2=A0 =C2=A0with speech-dispatcher.=C3=82=C2=A0 I wan= t to try and configure a different
>=C2=A0 =C2=A0 =C2=A0voice.=C3=82=C2=A0
>=C2=A0 =C2=A0 =C2=A0I wan to try and experiment with differen= t voices.=C3=82=C2=A0 Espeak is OK,
>=C2=A0 =C2=A0 =C2=A0but I
>=C2=A0 =C2=A0 =C2=A0feel I have to move forward.=C3=82=C2=A0 = But again I am stuck.=C3=82=C2=A0 Here is
>=C2=A0 =C2=A0 =C2=A0where I am at.
>
>=C2=A0 =C2=A0 =C2=A0I could never get speech output even on t= he CLI.
>
>=C2=A0 =C2=A0 =C2=A0The error I would get was -festival: can&= #39;t open /dev/dsp
>
>=C2=A0 =C2=A0 =C2=A0It is due to a bug.=C3=82=C2=A0=C3=82=C2= =A0 The workaround is:
>=C2=A0 =C2=A0 =C2=A0Create ~/.festivalrc with the following c= ontent
>
>=C2=A0 =C2=A0 =C2=A0;use ALSA
>=C2=A0 =C2=A0 =C2=A0(Parameter.set 'Audio_Method 'Aud= io_Command)
>=C2=A0 =C2=A0 =C2=A0(Parameter.set 'Audio_Command "a= play -q -c 1 -t raw -f s16 -r $SR
>=C2=A0 =C2=A0 =C2=A0$FILE")
>
>
>=C2=A0 =C2=A0 =C2=A0I then needed to configure speech-dispatc= her, so I ran:
>
>=C2=A0 =C2=A0 =C2=A0spd-conf
>
>=C2=A0 =C2=A0 =C2=A0as a regular user.=C3=82=C2=A0 It creates= the speech-dispatcher global server
>=C2=A0 =C2=A0 =C2=A0configuration file:
>
>=C2=A0 =C2=A0 =C2=A0in ~/.config/speech-dispatcher/|speechd.c= onf|
>
>=C2=A0 =C2=A0 =C2=A0This configures speech-dispatcher (intera= ctively) with a number of
>=C2=A0 =C2=A0 =C2=A0variables, the default voice is espeak. >
>=C2=A0 =C2=A0 =C2=A0I then edit speechd.conf, which allows fo= r many different
>=C2=A0 =C2=A0 =C2=A0voices.=C3=82=C2=A0 I change:
>
>=C2=A0 =C2=A0 =C2=A0|#AddModule "espeak" "sd_e= speak" "espeak.conf"||
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0|AddModule "festival" "sd_= festival" "festival.conf"|
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0|and|
>=C2=A0 =C2=A0 =C2=A0||||
>
>=C2=A0 =C2=A0 =C2=A0|#DefaultModule espeak |
>
>=C2=A0 =C2=A0 =C2=A0|DefaultModule festival The next step I d= o not understand: "|We
>=C2=A0 =C2=A0 =C2=A0need to run |festival| as a server in ord= er to make
>=C2=A0 =C2=A0 =C2=A0|speech-dispatcher| use it as default. We= can do that by adding
>=C2=A0 =C2=A0 =C2=A0the following line at the end of the file= that's open when we use the
>=C2=A0 =C2=A0 =C2=A0command: |sudo crontab -e|:
>
>=C2=A0 =C2=A0 =C2=A0|@reboot /usr/bin/festival --server"= |
>
>=C2=A0 =C2=A0 =C2=A0|||I can't understand the last step.= =C3=82=C2=A0 I've never used crontab
>=C2=A0 =C2=A0 =C2=A0fore, any
>=C2=A0 =C2=A0 =C2=A0help would be appreciated, Gustav.|
>=C2=A0 =C2=A0 =C2=A0||
>
>=C2=A0 =C2=A0 =C2=A0||
>
>
>
>=C2=A0 =C2=A0 =C2=A0On 9/22/19 9:29 AM, Simion wrote:
>
>
>=C2=A0 =C2=A0 =C2=A0snip
>
>=C2=A0 =C2=A0 =C2=A0> As I said I suggest to get used of u= sing faster and faster voices,
>=C2=A0 =C2=A0 =C2=A0> your family will understand and you = will read same texts 2 times
>=C2=A0 =C2=A0 =C2=A0> faster so you gain time, at that spe= ed any voice will sound robotic,
>=C2=A0 =C2=A0 =C2=A0> this would not work if you want othe= r to listen with you (but
>=C2=A0 =C2=A0 =C2=A0you can
>=C2=A0 =C2=A0 =C2=A0> have a normal speed and a fast speed= talker in jovie)
>=C2=A0 =C2=A0 =C2=A0>
>=C2=A0 =C2=A0 =C2=A0>
>=C2=A0 =C2=A0 =C2=A0> On 9/22/19 2:54 PM, Gustav Degreef w= rote:
>=C2=A0 =C2=A0 =C2=A0>>
>=C2=A0 =C2=A0 =C2=A0>> snip
>=C2=A0 =C2=A0 =C2=A0>>
>=C2=A0 =C2=A0 =C2=A0>> =C3=83=E2=80=9A=C3=82=C2=A0From = what you and others are saying and from what I've
>=C2=A0 =C2=A0 =C2=A0read, I think I
>=C2=A0 =C2=A0 =C2=A0>> understand better.=C3=83=C6=92= =C3=A2=E2=82=AC=C5=A1=C3=83=E2=80=9A=C3=82=C2=A0 Correct me if I am wrong, but don't
>=C2=A0 =C2=A0 =C2=A0you have
>=C2=A0 =C2=A0 =C2=A0>> to tell
>=C2=A0 =C2=A0 =C2=A0>> speech-dispatcher which voice (e= -speak, festival, etc.) to
>=C2=A0 =C2=A0 =C2=A0use?=C3=83=C6=92=C3=A2=E2=82=AC=C5=A1=C3= =83=E2=80=9A=C3=82=C2=A0 If I
>=C2=A0 =C2=A0 =C2=A0>> can figure out how to tell speec= h-dispatcher which voice to use
>=C2=A0 =C2=A0 =C2=A0then
>=C2=A0 =C2=A0 =C2=A0>> Jovie (or Qtspeech) will then ou= tput my choice?=C3=83=C6=92=C3=A2=E2=82=AC=C5=A1=C3=83=E2=80=9A=C3=82=C2= =A0 I have
>=C2=A0 =C2=A0 =C2=A0looked
>=C2=A0 =C2=A0 =C2=A0>> into it,
>=C2=A0 =C2=A0 =C2=A0>> and there are several (about 6 d= ifferent) voices I can use in
>=C2=A0 =C2=A0 =C2=A0Linux.
>=C2=A0 =C2=A0 =C2=A0>>
>=C2=A0 =C2=A0 =C2=A0>>
>=C2=A0 =C2=A0 =C2=A0>>
>

--000000000000ce31010593a683ed--