OpenVoiceOS / ovos-tts-plugin-piper

Apache License 2.0
20 stars 11 forks source link

license issues #2

Open JarbasAl opened 1 year ago

JarbasAl commented 1 year ago

as flagged in https://github.com/rhasspy/piper/issues/93

to comply with espeak-ng license this repo needs to be relicensed as GPL, unless the phonemizer can be replaced by a non-GPL alternative

since this plugin can NOT be used without espeak-ng it should be considered a derivative work

it should be added to the list of licensing exceptions in our docs https://openvoiceos.github.io/ovos-technical-manual/license/

ChanceNCounter commented 1 year ago

First glance, all I can say is, yup. Will take a closer look after late lunch, marked as unread

ChanceNCounter commented 1 year ago

For the benefit of OVOS folks who don’t click through to the issue at Piper:

Piper will be removing the hard GPL dep in an upcoming release, at which point this issue can be closed.

JarbasAl commented 1 year ago

For the benefit of OVOS folks who don’t click through to the issue at Piper:

Piper will be removing the hard GPL dep in an upcoming release, at which point this issue can be closed.

we do not need to wait for that, we can replace espeak phonemizer, probably makes sense to even use the exisintg ovos G2P plugin framework (and update corresponding espeak plugin for feature parity)

synesthesiam commented 1 year ago

Replacing the phonemizer will likely require retraining the voices, unfortunately. Is all of your g2p stuff in Python? I've considered rewriting gruut in C++ or Rust one of these days, but it would require porting num2words as well.

ChanceNCounter commented 1 year ago

The subject of rewriting components in machine code comes up a lot, but so far it’s mostly talk. There’s a port of your listener in C++. Otherwise, it’s a massive stack of Python.

Personally, I’ve been growing fonder and fonder of Rust. Evangelizing will be the hard part. I’d RIIR tomorrow.

JarbasAl commented 1 year ago

Replacing the phonemizer will likely require retraining the voices, unfortunately. Is all of your g2p stuff in Python? I've considered rewriting gruut in C++ or Rust one of these days, but it would require porting num2words as well.

in this case it would really just be moving the espeak phonemizer into a plugin, so the g2p plugin is GPL and this repo remains apache

the user can replace the plugin with any other, depending on voice model, so this moves the GPL issue into the specific model (which requires the GPL plugin) not directly into Piper plugin

as for num2words, have you considered lingua_franca? i think it handles many more number variations in spoken format

JarbasAl commented 1 year ago

for context, here are the docs for our G2P plugins

https://openvoiceos.github.io/ovos-technical-manual/g2p_plugins/

synesthesiam commented 1 year ago

as for num2words, have you considered lingua_franca? i think it handles many more number variations in spoken format

I have, but it's Python only like num2words.

JarbasAl commented 11 months ago

Piper will be removing the hard GPL dep in an upcoming release, at which point this issue can be closed.

as a small follow up to this, the GPL code now lives in it's own repo for piper-phonemize

this plugin also moved to use piper as an upstream dependency now that it is on pypi, so we no longer directly depend on espeak phonemizer library

however others raised similar concerns over piper-phonemize https://github.com/rhasspy/piper-phonemize/issues/17

espeak is still a hard dependency of this plugin since it won't work without it's code, so i'm not sure this issue can be closed yet