Bug 867958 - Make festival 2.1 compatible with old HTS voices
Summary: Make festival 2.1 compatible with old HTS voices
Status: RESOLVED WONTFIX
Alias: None
Product: openSUSE 13.1
Classification: openSUSE
Component: Sound (show other bugs)
Version: Final
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Takashi Iwai
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-03-12 12:23 UTC by Forgotten User CSGA97KGGE
Modified: 2016-05-23 18:41 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---
tiwai: needinfo? (forgotten_CSGA97KGGE)
mrmazda: needinfo?


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Forgotten User CSGA97KGGE 2014-03-12 12:23:09 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0

The quality of the voices used on festival currently on openSUSE are lacking when matched against what can be installed on debian (and derivatives).

There is a patch on debian, hts21compat.diff that if applied make it possible to use the english voices from "http://hts.sp.nitech.ac.jp/".

The voices are quite good and can be downloaded from "http://hts.sp.nitech.ac.jp/archives/2.1/".

May someone be interested I may provide the needed patches and rpm spec files.

Reproducible: Always

Steps to Reproduce:
1.
2.
3.
Actual Results:  
Poor synthetic voices quality.

Expected Results:  
Match quality that can be achieved on debian derivatives.
Comment 1 Takashi Iwai 2014-03-12 13:41:44 UTC
At best, could you work on OBS and submit the changes?
Comment 2 Forgotten User CSGA97KGGE 2014-03-12 16:04:29 UTC
Yes, sure, should I add a user repo and a festival package on it?
Comment 3 Takashi Iwai 2014-03-12 16:18:47 UTC
Yes, just create a branched package, add your fix, build, test and submit.
You can work at first for openSUSE:13.1, then work on openSUSE:Factory.
For creating a branch, run like:

   % osc branch -c openSUSE:13.1/festival

In both cases, you can submit via "osc sr".
Comment 4 Forgotten User CSGA97KGGE 2014-03-12 17:21:51 UTC
OK, give me a couple of days to write proper descriptions, summaries and license notices to the packages. The licenses allows distribution and commercial use and are mostly BSD 3 clauses like, the main one from Carnegie Mellon University. I modified the building process and speech_tools and festival can be build separately now.

Will include the nitech voices on separated RPMS to easy the testing.

I may insert a brief description of the library linking process on development package if you devises it as noteworthy but I am tempted to do it on a revision.

Regards,
André
Comment 5 Takashi Iwai 2014-03-19 17:15:13 UTC
Thanks.  I set this NEEDINFO for keeping tracking.  Please clear it once when the package is ready, or if you have any questions.
Comment 6 Forgotten User CSGA97KGGE 2014-03-24 18:29:52 UTC
OK, was a bit busy and it took more time than I expected. I usually build packages from source with an old, big bash script I have (inheritance from the time I used to build servers from Slackware, FreeBSD, RH and openSUSE). Now the packages build from .spec files. I named the packages speech-tools-hts and festival-hts. There is still a clause I think I should add (conflict). but it is good to go for test.

Will update build services today.

Regards,
André
Comment 7 Forgotten User CSGA97KGGE 2014-03-25 07:49:55 UTC
Tried to build it on build.opensuse.org. Had 3 strange errors:
* x86_64 - BuildRequires:  python-devel
  - python-config not found ? (works on i586)

* x86_64 and i586
  - build system keep using old .spec despite new version upload
  - fail to link to libncurses despite "-L/usr/%{arch_lib_dir} -lncurses" flag

There is something I am doing wrong but, on all cases, it builds from .spec on my system and using "ldd" on libraries generated or "rpm -qp --requires" did not reveal any hidden dependence.

May you branch the project to see what is wrong?

Regards,
André
Comment 8 Forgotten User CSGA97KGGE 2014-03-25 12:41:20 UTC
Finished the download of all packages needed, the patched festival-hts and speech-tools-hts and the high quality voices from nitech (with respective patches).

May you help me fix what is wrong on building the packages on build.opensuse.org, please, let me know.

As I said, all of them build with no errors on my machine (openSUSE 13.1 x86_64).

After a success build of the main packages, we could, perhaps, insert the conflict clause on them and a require clause (festival-hts) on voice packages.

Regards,
André
Comment 9 Takashi Iwai 2014-03-25 12:58:23 UTC
I can give a quick look if you tell me the package URL you're working on OBS.
Comment 10 Forgotten User CSGA97KGGE 2014-03-25 13:30:16 UTC
https://build.opensuse.org/project/show/home:acobar:festival-hts

Thanks,
André
Comment 11 Takashi Iwai 2014-03-25 13:38:33 UTC
Some package builds failed because of /usr/share/festival/* files.  For example, at the end of the build log:
  festvox-nitech-us-rms-arctic-hts-2.1-3.1.noarch.rpm: directories not owned by a package:
  [   36s]  - /usr/share/festival
  [   36s]  - /usr/share/festival/voices
  [   36s]  - /usr/share/festival/voices/us

For fixing this, just add the following
  Requires:  festival

so that festival.rpm is installed in prior to these packages.

The error in festvox-nitech-us-bdl-arctic-hts.spec is a typo in %files.  There is a superfluous double-quote there.
Comment 12 Forgotten User CSGA97KGGE 2014-03-25 14:09:02 UTC
Hi,

Like I said, I am aware that a require clause will be needed on voice packages (I corrected the typo, thanks). I didn't put it beforehand because I wanted to test the unpacking and the copy process to the build dir.

My main problem is that speech-tools-hts is failing on final linking phase because of libncurses and I could not spot why. As I said, it builds OK on my machine.

I don't know if it may help, but I can upload the src.rpm if you think it may help.

Regards,
André
Comment 13 Takashi Iwai 2014-03-25 14:15:51 UTC
-ltinfo is missing.  But, in general, you need to pass the cflags and libs given by ncurses5-config or ncurses6-config program (depending on API version).
Comment 14 Forgotten User CSGA97KGGE 2014-03-25 15:20:52 UTC
I see, will try with a new patch.

Thank you,
André
Comment 15 Forgotten User CSGA97KGGE 2014-03-27 12:43:52 UTC
Good news! speech-tools-hts, festival-hts and all extra voices packages now builds on build.opensuse.org!

To fix the voices building I had to add "BuildRequires: festival-hts".

It should be said that if the packages goes mainstream a conflict cause must be added against festival package.

The other problems I reported were related to Firefox aggressively caching the generated log.

Regards,
André
Comment 16 Takashi Iwai 2014-03-27 13:28:41 UTC
Why not replacing the existing festival?  Does this make anything incompatible?
Comment 17 Forgotten User CSGA97KGGE 2014-03-27 15:35:46 UTC
No, it does not. I just happen to prefer to separate packages, if they can be, so that eventual bugs can be more easily spotted.

Would you like to to have them recombined? It is an easy task and I may very well go for it now.

It should be noted that, besides the use of nitech voices, the packages are also "pulseaudio" compatible now, thanks to debian patches.

Regards,
André
Comment 18 Takashi Iwai 2014-03-27 15:38:32 UTC
Replacing / downgrading the package can be done easily.  If we find any regression, it can be downgraded to openSUSE 13.1 package, for example.
So, yes, IMO, it's better to integrate into the existing festival package, since yours is a superset, after all.
Comment 19 Forgotten User CSGA97KGGE 2014-03-27 15:49:37 UTC
OK, the list of patches is going to be really huge. Should I combine some of them?

I am asking because I find it to be easier to review them and track their origins this way but I am not sure what is the policy on openSUSE.
Comment 20 Takashi Iwai 2014-03-27 15:54:40 UTC
I don't think the amount of patches matters as long as they are described properly.  At best, put some description '#PATCH-XXX blah blah' for each patch.  If they come from Debian, you can write so.  That will help review pretty much.

The added (deleted or modified too) patches have to be listed in the package changelog explicitly, too.  This is a rule recently added.
Comment 21 Forgotten User CSGA97KGGE 2014-03-27 16:20:22 UTC
The debian patches come with a description inside them, they are the ones numerated. The patches from openSUSE already carry a description on their names.

I did ask about reduction because I applied patches on places that were already modified by debian or openSUSE patches, so it is kind of patching a patched place.

Anyway, will carry on current situation for now. May someone deem as more appropriate to combine them later, it is not something really hard to do.

I am a bit busy now so, if I don't disentangle the things I am doing, it perhaps may take a day or two to finish the modifications.

Regards,
André
Comment 22 Forgotten User CSGA97KGGE 2014-04-02 14:14:17 UTC
OK, finished. The building process is coupled again. I, though, kept the include files dirs and extensions from festival and speech_tools in their respective dirs. I think it is useful to maintain some compatibility with debian dirs layout on this case.

The whole project is on "home:andre:festival".

The main differences to the original package are the following:
- pulseaudio compatibility;
- asterisk support;
- shared libs are created;
- support for nitech voices;
- tools from speech_tools are now packaged;
- easier to create packages dependent on speech_tools and/or festival.

May you want some modifications done, let me know.

Regards,
André
Comment 23 Takashi Iwai 2014-04-02 15:42:22 UTC
Thanks!  Then feel free to submit to devel project.  Once when accepted, it'll be automatically fed to openSUSE:Factory.  The devel project of festival is KDE:KDE3 by some reason, so I have no direct control on it, unfortunately...
Comment 24 Takashi Iwai 2016-01-22 15:22:32 UTC
openSUSE 13.1 reached EOL.  Please reopen and reassign the bug if it's still reproduced on openSUSE Leap or Tumbleweed.  Thanks.
Comment 25 Felix Miata 2016-05-22 21:29:23 UTC
Since upgrading:
# 2014-12-07 19:19:47 festival-2.1-18.1.x86_64.rpm installed ok
# Updating /etc/sysconfig/festival...
2014-12-07 19:19:47|install|festival|2.1-18.1|x86_64|root@Easystreet|KDE_KDE3
# 2016-05-12 01:26:50 festival-2.4-23.1.x86_64.rpm installed ok
# Updating /etc/sysconfig/festival...
# redirecting to systemctl try-restart festival.service
2016-05-12 01:26:50|install|festival|2.4-23.1|x86_64||KDE_KDE3

voices can no longer be found by KTTSMgr, so formerly functional KTTS is stone dead. Voices cannot be found in 42.1 or 13.2 either. Is that this bug, or is a new one needed?
Comment 26 Felix Miata 2016-05-23 18:41:46 UTC
2.1-18.1 is no longer in the repos, but backleveling to 2.1-13.1 from OSS repo restored 13.1 KTTSMgr sound. Still no progress trying to get voices found in 42.1

cf. also http://bugs.pearsoncomputing.net/show_bug.cgi?id=2657