|  10-08-2022, 06:33 AM | #1 | 
| Member  Posts: 10 Karma: 10 Join Date: Oct 2022 Device: Meebook M7 | 
				
				32bit TTS Voice support - Read aloud
			 
			
			Hello, I'm a long-term user of the AT&T TTS 32bit voices and have been trying to enable support with the 'Read aloud' feature. I've managed to get Calibre Viewer to acknowledge the voice with the following registry edit. I'd be very grateful for any assistance with this. Mike16.reg Code: Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\ATT-DT-14-Mike16]
@="ATT DTNV1.4 Mike16"
"409"="ATT DTNV1.4 Mike16"
"CLSID"="{7ED7FB3B-1BD2-4218-A2D2-B7F5483C3246}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\ATT-DT-14-Mike16\Attributes]
"Age"="Adult"
"Gender"="Male"
"Language"="409"
"Name"="Mike16"
"TTSBin"="C:\\Program Files (x86)\\ATTNaturalVoices\\TTS1.4\\Desktop\\bin"
"TTSData"="C:\\Program Files (x86)\\ATTNaturalVoices\\TTS1.4\\Desktop\\data"
"Vendor"="AT&T Labs"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\ATT-DT-14-Mike16\UI]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\ATT-DT-14-Mike16\UI\EngineProperties]
"CLSID"="{7B6A198B-CA9D-41fb-B348-73BC1383DD0B}"Code: calibre, version 6.6.1
ERROR: Unhandled exception: <b>OSError</b>:C:\r\src\src\calibre\utils\windows\winsapi.cpp:281:Failed to speak:[hr=0x80040154 wCode=0] Class not registered
calibre 6.6.1 Portable embedded-python: True
Windows-10-10.0.19044-SP0 Windows ('64bit', 'WindowsPE')
('Windows', '10', '10.0.19044')
Python 3.10.1
Windows: ('10', '10.0.19044', 'SP0', 'Multiprocessor Free')
Interface language: en_GB
Traceback (most recent call last):
  File "calibre\gui2\viewer\tts.py", line 92, in action
  File "calibre\gui2\viewer\tts.py", line 110, in resume_after_configure
  File "calibre\gui2\tts\windows.py", line 252, in resume_after_configure
  File "calibre\gui2\tts\windows.py", line 206, in purge
  File "calibre\gui2\tts\windows.py", line 186, in speak_implementation
OSError: C:\r\src\src\calibre\utils\windows\winsapi.cpp:281:Failed to speak:[hr=0x80040154 wCode=0] Class not registered | 
|   |   | 
|  10-08-2022, 06:52 AM | #2 | 
| creator of calibre            Posts: 45,604 Karma: 28548974 Join Date: Oct 2006 Location: Mumbai, India Device: Various | 
			
			calibre just hands off the text to the SAPI subsystem of windows, after that it's up to windows to speak it. I dont know why th ebitness of the voice engine should make a difference, but I am no expert on windows speech systems.
		 | 
|   |   | 
| Advert | |
|  | 
|  10-08-2022, 08:16 AM | #3 | ||
| Member  Posts: 10 Karma: 10 Join Date: Oct 2022 Device: Meebook M7 | 
			
			Thanks for the quick reply. As described on the webpage below, Windows 10 64bit handles 32bit voices differently from 64bit. Adobe Reader and TextAloud (https://nextup.com) are able to detect and use 32bit voices - presumably because those apps know to check the Windows registry for 32bit voices. Would it be possible for Calibre to also check the registry location of any 32bit voices currently installed? HKEY_LOCAL_MACHINE > Software > WOW6432Node > Microsoft > Speech https://www.webbie.org.uk/blog/microsoft-speech/ Quote: 
 Quote: 
 | ||
|   |   | 
|  10-08-2022, 10:14 AM | #4 | 
| creator of calibre            Posts: 45,604 Karma: 28548974 Join Date: Oct 2006 Location: Mumbai, India Device: Various | 
			
			calibre doesnt check the registry directly, it just calls the SAPI apis from microsoft to enumerate the voices. I am fine with adding 32 bit voices to it, but given i dont have sucha voice to test with and it will require manually searching the registry its a bit too much effort for me. Patches are welcome, relevant code is in winsapi.cpp
		 | 
|   |   | 
|  10-08-2022, 12:32 PM | #5 | 
| Member  Posts: 10 Karma: 10 Join Date: Oct 2022 Device: Meebook M7 | 
			
			Okay, thanks for the clarification.  With some further reflection, I think I can offer an explanation as to what is happening (and why a scan of registry will not be the solution). Calibre is currently utilizing the default (64bit) SAPI subsystem, which would explain why the 32bit voices are not available for selection. The other applications I mentioned are 32bit, and are using the 32bit SAPI subsystem. I do not know if it is possible for a 64bit application to call upon the 32bit SAPI subsystem via APIs. | 
|   |   | 
| Advert | |
|  | 
|  10-08-2022, 12:47 PM | #6 | 
| creator of calibre            Posts: 45,604 Karma: 28548974 Join Date: Oct 2006 Location: Mumbai, India Device: Various | 
			
			makes sense
		 | 
|   |   | 
|  10-08-2022, 02:16 PM | #7 | 
| Member  Posts: 10 Karma: 10 Join Date: Oct 2022 Device: Meebook M7 | 
			
			It may not bring much closure, but for anyone else facing this issue - the last 32-bit version of Calibre works fine with 32-bit TTS voices. https://download.calibre-ebook.com/5.44.0/ | 
|   |   | 
|  10-08-2022, 03:22 PM | #8 | |
| Grand Sorcerer            Posts: 6,267 Karma: 16544702 Join Date: Sep 2009 Location: UK Device: ClaraHD, Forma, Libra2, Clara2E, LibraCol, PBTouchHD3 | Quote: 
 If you bought your Voices from NextUp I think they believe they are only sold to you for use in their TextAloud app. (Given the cost I don't really care what they believe). Last time I updated my copy of TextAloud it was a 32bit-only app. Has that changed? Fortunately the Ivona Voices install themselves in both the relevant parts of the Windows registry: 
 | |
|   |   | 
|  | 
| 
 | 
|  Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post | 
| Add Microsoft online TTS support for the "Read aloud" function, please. | kyod | Calibre | 2 | 10-12-2021 08:39 AM | 
| Kindle TTS: Would you use a different voice? | Kindle Addict | Amazon Kindle | 18 | 03-30-2014 02:00 PM | 
| Read Aloud support for Nook? | ralphiedee | Barnes & Noble NOOK | 1 | 08-25-2012 02:21 AM | 
| Read Aloud support for Kobo | ralphiedee | Kobo Reader | 0 | 08-22-2012 10:23 AM | 
| Kindle / Kindle Fire read Aloud epub support | ralphiedee | Amazon Kindle | 2 | 08-07-2012 02:16 PM |