9

I recently installed Wine according to this answer and “Balabolka”, a very good TTS program that runs smoothly under Windows, afterwards. Wine did not install SAPI 4 or SAPI 5 voices which are required to use the program. So, I downloaded a free German (Steffi) and a free British English (Emily) SAPI 5 voice and installed them as well.

Unfortunately, Balabolka does not recognise these voices although they are installed. What can I do? Usually, Balabolka should be able to detect the voices automatically. But this does not work under Ubuntu. Furthermore, Balabolka does not seem to have an option which enables the user to manually select the installed voices if they are not detected by Balabolka itself.


Edit 1: I just saw that there is an option where one could (theoretically) select different voices but the option is greyed out.


Edit 2: It seems to be possible to install SAPI 4 voices so that Balabolka recognises them but I do not know how this can be achieved. I tried installing a SAPI 4 voice but it did not show up when I started the program. Having a SAPI 4 voice, however, would be at least better than having no solution at all.

Nemgathos
  • 207
  • 3
  • 17

4 Answers4

1

I did not find any way (currently) to make the program work with SAPI 4/5 voices, but you can work with some of Microsoft Speech Platform voices.

  1. Create 32-bit Wine Prefix:

    WINEPREFIX="$HOME/prefix32" WINEARCH=win32 wine wineboot
    
  2. Install Balabolka:

    cd "$HOME/prefix32/drive_c/Program Files/"
    wget http://balabolka.site/balabolka_portable.zip
    unzip balabolka_portable.zip
    
  3. Test if program works:

    WINEPREFIX="$HOME/prefix32" wine "$HOME/prefix32/drive_c/Program Files/Balabolka/balabolka.exe"
    
  4. Install Microsoft Speech Platform voice files (specifically x86 Package and Runtime Languages), I will choose ZiraPro, however you can install other voice files:

    wget https://download.microsoft.com/download/A/6/4/A64012D6-D56F-4E58-85E3-531E56ABC0E6/x86_SpeechPlatformRuntime/SpeechPlatformRuntime.msi
    WINEPREFIX="$HOME/prefix32" wine msiexec /i SpeechPlatformRuntime.msi
    
    wget https://download.microsoft.com/download/4/0/D/40D6347A-AFA5-417D-A9BB-173D937BEED4/MSSpeech_TTS_en-US_ZiraPro.msi
    WINEPREFIX="$HOME/prefix32" wine msiexec /i MSSpeech_TTS_en-US_ZiraPro.msi
    
  5. Install winetricks:

    sudo apt install winetricks
    
  6. Install msxml6:

    WINEPREFIX="$HOME/prefix32" winetricks msxml6
    
  7. Check if this program works. (Repeat step 3 and choose Microsoft Speech Platform Tab in the program)

Hope this helps...

P.S. To install other voice files, go to https://www.microsoft.com/en-us/download/details.aspx?id=27224, download and then install with:

WINEPREFIX="$HOME/prefix32" wine msiexec /i <filename of the downloaded package>

Source:

How do I create a 32-bit WINE prefix?

https://appdb.winehq.org/objectManager.php?sClass=version&iId=34389

Olimjon
  • 7,292
  • I am encountering some problems when writing WINEPREFIX="$HOME/prefix32" wine SpeechPlatformRuntime.msi. After writing this, the following lines show up: (1): 000b:fixme:winediag:start_process Wine Staging 4.20 is a testing version containing experimental patches., (2): 000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org., (3): 0009:err:module:__wine_process_init failed to load L"C:\\Program Files\\SpeechPlatformRuntime.msi", error c000012f. By the way: There is an error in your answer. It has to be Program Files without \. – Nemgathos Nov 25 '19 at 18:49
  • This might be helpful. – Nemgathos Nov 25 '19 at 19:00
  • @Nemgathos, every space should be escaped with backslash, so there should be no error with Program Files. And about the main problem, what about running WINEPREFIX="$HOME/prefix32" wine msiexec \i SpeechPlatformRuntime.msi? – Olimjon Nov 25 '19 at 19:32
  • Now, the third line looks like this: 0009:fixme:msi:MsiMessageBoxW 00000000 L"Windows Installer 4.5.6001.22308\n\nAufruf:\nmsiexec Befehl {erforderliche Parameter} [zus\00e4tzliche Parameter]\n\nProdukt installieren:\n\t/i {Paket|Produktcode} [Eigenschaft]\n\t/package {Paket|Produktcode} [Eigenschaft]\n\t/a Paket [Eigenschaft]\nInstallation reparieren:\n\t/f[p|o|e|"... (null) 0 00000407 00000000 Also, this error showed up. – Nemgathos Nov 25 '19 at 19:43
  • (Aufruf = call; Befehl = command; erforderliche/zusätzliche Parameter = required/additional parameters; Produkt installieren = install product; Paket = packet; Produktcode = product code; Eigenschaft = feature/preoperty) – Nemgathos Nov 25 '19 at 19:43
  • @Nemgathos, Oh, I am sorry. WINEPREFIX="$HOME/prefix32" wine msiexec /i SpeechPlatformRuntime.msi , it should be forward slash before i. please try again. – Olimjon Nov 25 '19 at 20:08
  • Nevermind. Writing WINEPREFIX="$HOME/prefix32" wine msiexec /i MSSpeech_TTS_en-US_ZiraPro.msi leads to this. – Nemgathos Nov 25 '19 at 20:19
  • @Nemgathos, it means everything is OK. Just proceed to the next steps. – Olimjon Nov 25 '19 at 20:20
  • It finally works and my Ubuntu OS has now become a lot more valuable to me! Thank you very much. I have been looking for a solution to this problem for a very long time. – Nemgathos Nov 25 '19 at 20:27
  • @Nemgathos, glad that it worked, you are welcome. – Olimjon Nov 25 '19 at 20:29
  • Ok, there is still one problem left. The ZiraPro voice works perfectly fine but I cannot install other voices. If I type WINEPREFIX="$HOME/prefix32" wine msiexec /i MSSpeech_SR_de-DE_TELE.msi, only the first two lines of this will be displayed to me and no window will open up. After starting Balabolka by typing WINEPREFIX="$HOME/prefix32" wine "$HOME/prefix32/drive_c/Program\ Files/Balabolka/balabolka.exe", ZiraPro is still the only voice available. (Note that I downloaded the German voice manually and copied it to the Program files folder. – Nemgathos Nov 25 '19 at 20:50
  • @Nemgathos, look, MSSpeech_TTS_en-US_ZiraPro has TTS in its name, however, MSSpeech_SR_de-DE_TELE does not have TTS in its name. You should specifically download and install files with TTS in its name. – Olimjon Nov 25 '19 at 20:57
  • BTW, you were right about Program Files. I used backlashes inside the double quote, so the command was wrong. – Olimjon Nov 25 '19 at 21:05
  • Trying to install WINEPREFIX="$HOME/prefix32" wine msiexec /i MSSpeech_TTS_de-DE_Hedda.msi does not work either. It will still show the first two lines of this and no window will open up. After starting Balabolka, ZiraPro is still the only voice available. The same is true for WINEPREFIX="$HOME/prefix32" wine msiexec /i MSSpeech_TTS_en-GB_Hazel. – Nemgathos Nov 25 '19 at 21:06
  • I just installed and everything is fine: https://i.imgur.com/vx2qSZ9.png – Olimjon Nov 25 '19 at 21:12
  • Maybe, you will try to downgrade wine version? My version is 4.0. I am not sure about this, but this might help. – Olimjon Nov 25 '19 at 21:15
  • I just realised that I downloaded and copied the files to the wrong directory (-.-). But now, everything works fine! – Nemgathos Nov 25 '19 at 21:16
1

I followed this github guide sapi5_on_linux and got it to work. The most important and relevant line is the following:

WINEPREFIX=~/.PlayOnLinux/wineprefix/tts winetricks speechsdk

You need to use winetricks to install speechsdk.

kohane15
  • 121
  • 5
1

Unfortunately I did not encounter the exact problem you are describing myself, but I just created a new TTS utility which could help you as well. It works offline, for free with AI-based high-quality voice. You can you it everywhere: Firefox browser, PDF reader, chrome, LibreOffice, etc.

You can give it a try, it comes form research on deep learning and AI, and I find it much better than espeak, festival and co. Hopefully you can do without Wine.

Feel free to have a look, I just created a video tutorial with installation steps and DEMO: https://youtu.be/hb1ZVwUcPCU

Download link and Project page: https://github.com/MattePalte/Verbify-TTS

Feel free to leave comment/open issue to discuss new ideas, problems or constructive criticism.

Hoping it will help you.

0

I am using Debian 12. Make sure you have Wine and Winetricks installed.

Creating your 32bit Wine Prefix. I will call it “win7”

WINEPREFIX=~/.win7 WINEARCH="win32" winecfg

Install these components

env WINEPREFIX=~/.win7 winetricks d3dx9
env WINEPREFIX=~/.win7 winetricks msvcirt
env WINEPREFIX=~/.win7 winetricks speechsdk
env WINEPREFIX=~/.win7 winetricks vcrun2008
env WINEPREFIX=~/.win7 winetricks vcrun2010
env WINEPREFIX=~/.win7 winetricks corefonts

Install Balabolka

env WINEPREFIX=~/.win7 wine ./setup.exe

Run Balabolka

env WINEPREFIX=~/.win7 wine "C:/Program Files/Balabolka/balabolka.exe"

At this point SAPI5 was working with English voices in Balabolka, but other languages were throwing the error Can not synthesize the speech: OLE error 8004503A

To fix this I had to install KobaSpeech lib I used this one "KobaSpeech 3 With Vocalizer Allison - English (United States).exe" and renamed the file to KobaSpeech.exe for the easier installation process.

env WINEPREFIX=~/.win7 wine ./KobaSpeech.exe

I am using SAPI5 voices from https://rhvoice.org/ all working great. I tested Russian & Portuguese. One more thing when you start Balabolka make sure you export your language locale.

I just created a bash file:

#!/usr/bin/env bash
export WINEPREFIX=~/.win7
export LANG=ru_RU.UTF-8
wine "C:/Program Files/Balabolka/balabolka.exe"
steve8
  • 1