-
Notifications
You must be signed in to change notification settings - Fork 49
Sound was lost in french word rez-de-chaussée #5
Comments
The same situation with word "banc" gomme Another situation with 'fille' |
DEBUG:larynx:Words for 'livre': ['livre'] |
DEBUG:larynx:Words for 'table': ['table'] DEBUG:larynx:Words for 'stylo': ['stylo'] In both cases the sound 't' was lost. |
I think I know where is problem, I took phonemes.txt for siwis-glow_tts from kathleen-glow_tts and more words are sound correctly. Please check it. |
It seems related to surrounding words. If you have it say "la table" or "le banc", then the "t" and "b" sounds come through. I'm not sure about "rez-de-chaussée", though. If I modify the lexicon to have the pronunciation "ʁ e d d ʃ o s e", then I hear the "d" sound. |
I don't think the surrounding words should affect on pronunciation if there is a pause between words. I think it's some global bug in neural network training algorithm if we say about "table" or "banc". |
I don't agree here. I think the liason can be fixed in gruut but this issue didn't have relation with gruut because gruut gave the right pronunciation for all my examples. |
I don't agree on the "fact" that There are not much words with hyphen and as it's a way used to create new words, they should not be neglected.. The pronunciation of some may seem "weird" as the liaison is done despite the hyphen and your 'porc-épic' is wrong
We have a lot of "noms propres" in this case. 2 examples |
@ddavout, I suggested to use Liason for all words with hyphen if there is no other solution. You didn't agree with it, did you? |
Good to ask ;) .. there is a misunderstanding here (my fault, I have lost command of my English :( ) I am on your side ! I once was maybe extreme in my thinking, I thought than you can train the voice to make it understand what is a liaison. ( (I use Festival and lts rules) It was not so bad, But as my POS became more reliable, (and my understanding of the Token and POS module, a little be less weak) I thought I could elaborate another strategy My methods are time consuming.. I will enforce the so called compulsory liaison rules and propose safe ones. I'm tracking every liaison in the Siwis prompts to check my "rules", I have not yet finished job ... euh .. to come back to hyphen matter. I am not sure if I'm clear, so I'll stop now. **hyphen is not just a punctuation sign, it's a letter" .. like the French apostrophe is not a whitespace |
I think to check every word sequence it's very time-consuming way. And I agree now to use a liason always when hyphen is encountered without pseudo-rules it's not very good idea. PS. Hyphen, apostrophe are symbols as whitespace. They are not letters. |
It's was an experiment to see if a voice can be trained to understand something to this "nebulous" matter the French liaison, experiment done at a time where my POS module didn't give "satisfactory" results. (at all) No I have come back to rules, that I call exception and exclusion, corresponding probably to your pseudo rules with black and white lists. For the running part of the voice, I will only enable compulsory liaison (without forgetting the case of locutions marked or not by hyphen). I have not yet finalized to make it simpler, for now my rules have several parameters (the writing form of the word leading to the liaison and of its follower, their respective' POS. So it's just a compilation work. I don't know your technology, but if it allows to have good phonemes without knowing very precisely the liaisons made in the prompts (compulsory, optional or wrong), the impressive work https://github.com/juliacarbajal/french_phonologizer/blob/master/phonologize.py should be, IMHO, a better guide. Tell me how to use your French model https://github.com/rhasspy/gruut/releases/tag/v0.10.0, then I may be able to test your liaison solution as with different POS detection, our respective lists are likely to be very different. Mine is not very good I must say to spot inversions ( particularly inversion for style effect) and there is still work to do to take in account the frequent spelling mistakes (ex: confusion between hyphen and apostrophe, missing hyphen etc.) |
Sorry, I'm not the author of gruut, I'm just an user like you. You need to ask the developer. |
Reassure me, you do use it... without POS, you can't apply your liaison rules...
I am not sure of what you call a symbol and you don't agree with my concept of letter (you are not the only one...) but ... it may look to you as excessive but I've meet examples in all these cases and I will know later if I have interest to treat some as exceptional |
Yes, "first letter" will be more accurate. |
|
Two words must be separated only by space (not an apostrophe, not a hyphen etc). The rules is only for that case. For hyphen it's other rules etc. Maybe they can be combined I don't know yet. If it's possible I prefer to work with 2 words at once because 3 words will give much more options.
Are you sure PosLex is 100% accurate? |
My Poslex is not 100% accurate, far from it :) "à moins d'être..." 'être' is seen as a verb, not a big deal... but for "à moins d'interviewer" the fault is really audible |
to come back to apostrophe and hyphen .. but don't you feel the need to follow your own tokenizer ?
"l'amour" is seen as as "clean_word" and a word is *composed" of letters, isn't it ? By the way, I doubt you will be able to apply fine rules using POS without working on the tokenizer beforehand without hyphen, you got (IMHO a better) {"text": "désiré", "pos": "VERB"} |
It depends. You can see on it from 2 points of view: the linguistics and NLP (natural language processing). The author of gruut can have his own opinion about it. And we have different goals. He wants to process a text to speech and for him to work with "l'amour" or "I've" (I have) as one word it's easy way. I need to separated them on single words and maybe later combine them in phrases because it's more comfortable from the point of view of translation. PS. "l'amour" and "I've", they are not very good examples here. There are a lot of word combinations in French when the dictionary will become huge. Like these: je t'ouvre; la légende s'écrire; vous n'allez pas m'envoyer au bagne... |
The size of the dictionary doesn't frighten me; once my LTS is trained accordingly, the lexbook will dramatically shrink. the point of view of foreign language helped to take this decision . Why in English I can use a single word, and I've to use 2 in French ?
( name s ; pos CON is mute, I keep it to not disturb the POSlex I trained a long time ago... gruut doesn't have this legacy problem). I would have thought that, from the point of view of translation, see "n'allez" as a verb will help... but apparently I'm wrong. |
You work only with French but I work with several languages so I always separate words with apostrophe, hyphen etc and then I use a post-processing for phrases like these too "tout de suite", "salle de bains", "salle à manger" as a single entity because this often translates as a single word or a similar phrase. |
Sorry to have been out of this discussion for a while. I'm getting close to a refactored release of gruut (in the The French liason code is here. It only handles a handful of cases, but it will hopefully provide a good start. Regarding apostrophes and hyphens: gruut's tokenizer has a set of "punctuations" that vary by language (here is the French set). Text is split into tokens by whitespace first, and then further split by punctuation characters (except for some special cases like numbers). The goal is for the final token to be something present in the lexicon. The final set of tokens are run through a POS tagger model that was trained on the Universal Dependencies CONLLU files for each language (my French model was trained on the Maybe at least the hyphen should be a "punctuation" character for French, so that those words get split into multiple tokens? |
I don't know. Even if word with hyphen doesn't have a liason it will pronounce a little faster than 2 single words. |
Actually, I take that back. The hyphen shows up in the lexicon as part of words, so it needs to be left in. |
If you process a hyphen as punctuation character how do you plan to process a liason in this case? |
I decided not to process the hyphen as a punctuation character. It would make things too difficult. |
"Will you go so ad far as to say |
From gruut's point of view, yes, a French hyphen is a letter ;) |
i's a pity that we use the same sign to cut the words at the end of a line. |
Try to get audio for french word: rez-de-chaussée
Here's command line:
cat << EOF |
fr|rez-de-chaussée.
EOF
/usr/local/bin/larynx
--debug
--csv
--glow-tts /path/fr-fr/siwis-glow_tts
--hifi-gan /path/hifi_gan/universal_large
--output-dir /mnt/d/99/voices/
--language fr-fr
--denoiser-strength 0.001
Debug data:
DEBUG:larynx:Words for 'rez-de-chaussée': ['rez-de-chaussée']
DEBUG:larynx:Phonemes for 'rez-de-chaussée': ['#', 'ʁ', 'e', 'd', 'ʃ', 'o', 's', 'e', '#', '‖', '‖']
Phonemes is OK for this word but there is not sound 'd' in an output audio.
The text was updated successfully, but these errors were encountered: