Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Software > Calibre > Plugins

Notices

Reply
 
Thread Tools Search this Thread
Old 10-22-2020, 01:34 PM   #46
jackie_w
Grand Sorcerer
jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.
 
Posts: 5,657
Karma: 14278244
Join Date: Sep 2009
Location: UK
Device: Kobo: H2O, GloHD, KA1, ClaraHD, Forma
Quote:
Originally Posted by kovidgoyal View Post
@jackie_w: FYI I have added wrappers for all functions i described earlier to calibre, so you dont need to depend on any external libraries. In fact I have even added code to directly output mp3 files, so you can drop lame.exe as well.

You can see how to use it by reading the tests in this file: https://github.com/kovidgoyal/calibr...ows/winsapi.py

It was surprisingly easy, only about 500 lines of code.
Quote:
Originally Posted by kovidgoyal View Post
Oops I spoke to soon, mp3 output doesnt work, but wav output does.
Thank you for your efforts. I just came here to ask for more advice but you've beaten me to it

Are you able to pursue the mp3 creation or are you wanting me to do something? If the latter how do I get access to the new winstuff?

BTW I haven't been idle I've spent the last 2 days trying to get Doitsu's suggested comtypes method working. I thought it was going to be fine because I could run the jobs.process_file() function via a simple calibre-debug script and both WAV/MP3 were created OK for both v4.23 (via win32com) and v5.2 (via comtypes). But as soon as I tried to run it under the calibre jobs system in v5.2 I could no longer create a WAV. v4.23 still worked OK under jobs, both WAV and MP3.
jackie_w is offline   Reply With Quote
Old 10-22-2020, 01:52 PM   #47
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 38,247
Karma: 16793319
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
Your existing plugin already does wav to mp3 conversion using lame, that part will remain the same. I will upload a beta windows build for you, so you can access the winsapi module. You just need to do

Code:
from calibre_extensions.winsapi import ISpVoice
spv = ISpVoice()
spv.create_recording_wav('test.wav', 'Hello, world!')
kovidgoyal is offline   Reply With Quote
Advert
Old 10-22-2020, 02:05 PM   #48
jackie_w
Grand Sorcerer
jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.
 
Posts: 5,657
Karma: 14278244
Join Date: Sep 2009
Location: UK
Device: Kobo: H2O, GloHD, KA1, ClaraHD, Forma
Quote:
Originally Posted by kovidgoyal View Post
Your existing plugin already does wav to mp3 conversion using lame, that part will remain the same. I will upload a beta windows build for you, so you can access the winsapi module. You just need to do

Code:
from calibre_extensions.winsapi import ISpVoice
spv = ISpVoice()
spv.create_recording_wav('test.wav', 'Hello, world!')
Is it this one, from the beta Index?
Code:
calibre-64bit-5.3.0.msi    22-Oct-2020 17:02     59228160
ETA: Nevermind. I think I answered my own question. I think your file was mid-upload when I took that screencap.

Last edited by jackie_w; 10-22-2020 at 02:13 PM. Reason: ETA.
jackie_w is offline   Reply With Quote
Old 10-22-2020, 02:29 PM   #49
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 38,247
Karma: 16793319
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
Yeah, it's fully uploaded now.
kovidgoyal is offline   Reply With Quote
Old 10-22-2020, 03:34 PM   #50
jackie_w
Grand Sorcerer
jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.
 
Posts: 5,657
Karma: 14278244
Join Date: Sep 2009
Location: UK
Device: Kobo: H2O, GloHD, KA1, ClaraHD, Forma
Quote:
Originally Posted by kovidgoyal View Post
Yeah, it's fully uploaded now.
Thanks. There's plenty for me to get my head around here.

Are all the ISpVoice methods(???) shown in your Git link? Will it still be possible to use the plugin's Select Files/TestVoice page to start/stop ad-hoc speech. I don't see a 'pause' option in your link.

I think I still need some help in how to handle the events stuff that is in the current plugin (inherited, not developed by me). These bits:
Spoiler:
Code:
from win32com.client import WithEvents
class SapiVoice(object):
    self.spv = ...

    def handler(self, event_handler):
        return WithEvents(self.spv, event_handler)

class SAPI5DriverEventSink(object):
    def __init__(self):
        self._driver = None

    def setDriver(self, driver):
        self._driver = driver

    def OnEndStream(self, stream, pos):
        self._driver.OnEndStream(stream, pos)
        
    def OnStartStream(self, stream, pos):
        self._driver.OnStartStream(stream, pos)

class SelNamesDlg(QDialog):
    ...

    def initialize_speech(self):
        ...
        self._advise = self.testVoice.handler(SAPI5DriverEventSink)
        self._advise.setDriver(self)
   ...
jackie_w is offline   Reply With Quote
Advert
Old 10-23-2020, 01:12 AM   #51
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 38,247
Karma: 16793319
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
Yes, there are speak(), wait_until_done(), pause() and resume() methods as well, that doe the obvious things.

You dont actually need events, just ignore that.

call

speak('some text')

to speak it out loud. Look in winsapi.cpp at Voice_methods for the full list of methods, not all of them are testable.
kovidgoyal is offline   Reply With Quote
Old 10-23-2020, 03:43 PM   #52
jackie_w
Grand Sorcerer
jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.
 
Posts: 5,657
Karma: 14278244
Join Date: Sep 2009
Location: UK
Device: Kobo: H2O, GloHD, KA1, ClaraHD, Forma
Quote:
Originally Posted by kovidgoyal View Post
You dont actually need events, just ignore that.

call

speak('some text')

to speak it out loud.
WAV and MP3 creation is now working OK. I do still have 3 (hopefully) small problems, though...
  1. When testing a voice I can start a speak() event but I can't stop it mid-flow. I think this may be because the original speak method took 2 args, i.e. say('sometext', flag) where flag was
    • constants.SVSFDefault - when wanting to speak the whole text, i.e. create_recording_wav()
    • constants.SVSFlagsAsync - for ad-hoc speech which was interruptible by pause(), i.e. the voice tester.
    I see your winsapi.cpp contains 2 items, SPF_DEFAULT and SPF_ASYNC which may be the 2 equivalent constants (but I could be wrong)? The latter doesn't appear to be used anywhere.

    Perhaps the flag in speak() could default to using flag=SPF_ASYNC and create_recording_wav() is OK as-is using SPF_DEFAULT.

  2. When the voice tester starts a speak() event and is allowed to run to completion, i.e. stop/pause button not pressed. To reproduce the existing plugin I need to be able to detect programmatically when the speech stream ends so that various widget states can be updated accordingly.

    I think the old event stuff I mentioned was handling this. How do I go about reproducing this with the new ISpVoice?

  3. Hopefully this may not be a problem at all but I can't test it with the current 64-bit beta.

    This plugin has had a problem since initial release when running on calibre 32-bit. I think it was a problem with the underlying win32xxx module and I did add some code so it failed gracefully. It occurred when trying to get a list of all voices.

    Are you able to tell me what happens when the ISpVoice.get_all_voices() method is run in calibre 32-bit? I'd be happy to do the testing myself but I'd need a 32-bit beta which I'm aware is even more work for you.

    What I think I'd like to happen, if possible, is, if the underlying Windows code is still broken, rather than return an error or an empty list, return a list containing 1 dictionary (the usual keys) for the system's default voice.

Last edited by jackie_w; 10-23-2020 at 07:25 PM. Reason: Add 3rd item
jackie_w is offline   Reply With Quote
Old 10-23-2020, 09:46 PM   #53
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 38,247
Karma: 16793319
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
1) You can pass flags to speak as the second argument, it's just a wrapper for https://docs.microsoft.com/en-us/pre...9384(v=msdn.10) and the list of flags is here: https://docs.microsoft.com/en-us/pre...7460(v=msdn.10)

2) Just call wait_until_done(10) or some similarly small number of milliseconds. to check when speaking is completed. You can use a QTimer to call it repeatedly.

3) As far as I know it should work fine on 32bit, there is nothing 64bit specific in the code. I will upload a 32bit beta well later today.
kovidgoyal is offline   Reply With Quote
Old 10-23-2020, 10:34 PM   #54
jackie_w
Grand Sorcerer
jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.
 
Posts: 5,657
Karma: 14278244
Join Date: Sep 2009
Location: UK
Device: Kobo: H2O, GloHD, KA1, ClaraHD, Forma
Quote:
Originally Posted by kovidgoyal View Post
1) You can pass flags to speak as the second argument, it's just a wrapper for https://docs.microsoft.com/en-us/pre...9384(v=msdn.10) and the list of flags is here: https://docs.microsoft.com/en-us/pre...7460(v=msdn.10)
Where's the 'head hitting keyboard' emoji when you need it? BTW Both those links give me 404 - Content not found, but I do know that the default/async constants are 0 and 1.
Quote:
Originally Posted by kovidgoyal View Post
2) Just call wait_until_done(10) or some similarly small number of milliseconds. to check when speaking is completed. You can use a QTimer to call it repeatedly.
Sorry but I still don't really understand what you're saying. Please can you be more specific or, better still, point me at an example of something similar in use? I do know what a QTimer is.
Quote:
Originally Posted by kovidgoyal View Post
3) As far as I know it should work fine on 32bit, there is nothing 64bit specific in the code. I will upload a 32bit beta well later today.
Thanks. I've never understood why the original problem occurred.
jackie_w is offline   Reply With Quote
Old 10-24-2020, 01:06 AM   #55
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 38,247
Karma: 16793319
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
https://docs.microsoft.com/en-us/pre...384(v=msdn.10) is a working link, I hope.

Here you go

Code:
def check_speaking_done(self):
   if self.sapi.wait_until_done(10):
        # speaking is done
   else:
        QTimer.singleShot(10, self.check_speaking_done)
and the 32bit beta is uploaded.
kovidgoyal is offline   Reply With Quote
Old 10-24-2020, 09:53 AM   #56
jackie_w
Grand Sorcerer
jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.
 
Posts: 5,657
Karma: 14278244
Join Date: Sep 2009
Location: UK
Device: Kobo: H2O, GloHD, KA1, ClaraHD, Forma
Quote:
Originally Posted by kovidgoyal View Post
https://docs.microsoft.com/en-us/pre...384(v=msdn.10) is a working link, I hope.

Here you go

Code:
def check_speaking_done(self):
   if self.sapi.wait_until_done(10):
        # speaking is done
   else:
        QTimer.singleShot(10, self.check_speaking_done)
and the 32bit beta is uploaded.
Thanks for both of these.
jackie_w is offline   Reply With Quote
Old 10-24-2020, 06:38 PM   #57
jackie_w
Grand Sorcerer
jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.
 
Posts: 5,657
Karma: 14278244
Join Date: Sep 2009
Location: UK
Device: Kobo: H2O, GloHD, KA1, ClaraHD, Forma
@Kovid,

Just to let you know that I now have all previous functionality restored. I can't thank you enough for your support!

Quote:
Are you able to tell me what happens when the ISpVoice.get_all_voices() method is run in calibre 32-bit? I'd be happy to do the testing myself but I'd need a 32-bit beta which I'm aware is even more work for you.
As an added bonus, whatever technical problem existed with the above in the original plugin, your new ISpVoice has fixed it! From calibre v5.4 onwards all calibre 32-bit users (including calibre portable) should have access to all Voices installed in the 32-bit section of the Windows registry. They were previously restricted to just one, their system's default Voice.

After a bit more testing I'll be updating post #1 in the next few days in good time for next Friday's release of calibre v5.4.
jackie_w is offline   Reply With Quote
Old 10-25-2020, 12:08 AM   #58
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 38,247
Karma: 16793319
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
You are most welcome
kovidgoyal is offline   Reply With Quote
Old 10-28-2020, 03:35 PM   #59
jackie_w
Grand Sorcerer
jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.jackie_w ought to be getting tired of karma fortunes by now.
 
Posts: 5,657
Karma: 14278244
Join Date: Sep 2009
Location: UK
Device: Kobo: H2O, GloHD, KA1, ClaraHD, Forma
TTS to MP3 upgrade 0.5.4

There has been a technical decision made to remove various Windows modules from calibre's code base from v5.4 onwards. This has necessitated changes to this plugin to keep it running.

Users of calibre v5.4 (or higher) must also upgrade to TTS to MP3 v0.5.4

Users of calibre v3.41-v5.3 (inclusive) must keep TTS to MP3 v0.4.x

N.B: Calibre's automated plugin update system will not offer this plugin upgrade to existing users until they have already upgraded their calibre version to v5.4, which I believe is planned for October 30th, 2020.
  • Maintenance update for compatibility with calibre v5.4 and above.
  • Calibre 64-bit users: No change to functionality.
  • Calibre 32-bit users, including Calibre Portable:
    You should see an added benefit. You will now have access to all Voices installed in the 32-bit section of your Windows registry rather than just a single default Voice.
    After updating the plugin you do not need to do anything special. All available Voices should automatically appear in the relevant drop-down menus. See post #2 of this thread for more technical detail.

This update has involved quite a lot of changes (even if it doesn't look like it ) so, if you have any problems, please report them here.

Last edited by jackie_w; 10-28-2020 at 03:40 PM.
jackie_w is offline   Reply With Quote
Old 10-28-2020, 06:07 PM   #60
JSWolf
Resident Curmudgeon
JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.JSWolf ought to be getting tired of karma fortunes by now.
 
JSWolf's Avatar
 
Posts: 60,477
Karma: 64502687
Join Date: Nov 2006
Location: Roslindale, Massachusetts
Device: Kobo Aura H2O, PRS-650, PRS-T1, nook STR, iPad 4, iPhone SE 2020, PW3
Quote:
Originally Posted by jackie_w View Post
There has been a technical decision made to remove various Windows modules from calibre's code base from v5.4 onwards. This has necessitated changes to this plugin to keep it running.

Users of calibre v5.4 (or higher) must also upgrade to TTS to MP3 v0.5.4

Users of calibre v3.41-v5.3 (inclusive) must keep TTS to MP3 v0.4.x

N.B: Calibre's automated plugin update system will not offer this plugin upgrade to existing users until they have already upgraded their calibre version to v5.4, which I believe is planned for October 30th, 2020.
  • Maintenance update for compatibility with calibre v5.4 and above.
  • Calibre 64-bit users: No change to functionality.
  • Calibre 32-bit users, including Calibre Portable:
    You should see an added benefit. You will now have access to all Voices installed in the 32-bit section of your Windows registry rather than just a single default Voice.
    After updating the plugin you do not need to do anything special. All available Voices should automatically appear in the relevant drop-down menus. See post #2 of this thread for more technical detail.

This update has involved quite a lot of changes (even if it doesn't look like it ) so, if you have any problems, please report them here.
How can you deliver the 5.3 version since the plugin system doesn't handle multiple versions? And if it did, how would you tell people who need the older version to install the older version?
JSWolf is offline   Reply With Quote
Reply

Tags
calibre, mp3, neural, tts, voices

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[Plugin] TTS - Windows TTS output plugin Doitsu Plugins 12 05-18-2018 10:43 PM
How to install "incompatible" apps to Boox M96+T68. IVONA TTS, ACAPELA TTS etc. Booxtor Onyx Boox 24 04-19-2017 06:08 AM
which one you will prefer an audiobook or tts webroot Audiobook Discussions 4 08-06-2015 04:40 PM
E-ink device with TTS/audiobook integration verona Which one should I buy? 21 05-15-2013 07:11 PM
GUI Launcher greyed out when TTS is on and does not come back when TTS is off jmseight Kindle Developer's Corner 4 07-28-2012 03:48 AM


All times are GMT -4. The time now is 01:30 AM.


MobileRead.com is a privately owned, operated and funded community.