Warning: you do not need to do anything like this, to make TTS works in Locus. These files are already included in Locus!.
I'll use this topic, as one of many, to discuss new system of TTS for Locus
The main problem of TTS is the correct spelling of numbers. To make it work on 100%, I created a system where all texts are stored in text files in a usable format prepared for reading.
In English it's not so bad, there are only a one/first, but in Czech are four possibilities jeden/jednu/první/prvním ;). So in this file may be arrays names numbers_NX where X is 1 - 5. You may then use these numbers in action texts.
Also, format of this file is JSON. It's a little bit complicated to write but much easier to read and work with it
How to help/translate
Edited 13. 10. 2019
TTS Files are stored on GitHub repository (https://github.com/asamm/locus-map-tts-commands). All necessary information will be wrote on Wiki of the project.
FYI
Please pay attention:
Different TTS engines --> Different pronunciation
eg:
Google TTS, Samsung TTS, SVOX Classic TTS (//https://play.google.com/store/apps/details?id=com.svox.classic) or IVONA (//https://play.google.com/store/apps/details?id=com.ivona.tts),...
...sounds similar - but not identical.
But now, we have the ability to customize these differences.
You're on the right way Menion - thx
you're both crazy. I wanted to just discuss if such format is usable and you both completely translated all texts :)
ta-ka, there should be no problem to use "1": "1", but in this case, you may completely remove whole "numbers_N1", part and instead of "%N1", just use "%V". Locus will then use directly value without converting over "numbers_N1" parameters. Anyway reason for these number formats is as gynta wrote. Different TTS engines has different pronunciation and that's why I wrote all numbers as texts. You can clearly see it mainly in czech where were needed four different number formats
Hi, gynta and menion. Thanks for information.
When testing version comes, I'll see(listen to), which text(%N1) or number(%V) gives better results.
so, new test version is out, so it should be possible to test this feature.
Currently your translations AREN'T inside Locus! Testing method is simple. Choose in Locus for example german language or set your device to german and put "de.txt" file into root directory of Locus. So for example "mnt/sdcard/Locus/de.txt".
Thanks to this, when you choose TTS in locus, it firstly check for this file, then for internal file and if non of this is found, it use older default TTS system
feel free to ask if something will not work
you're sitting home, enabled navigation, moving with map center, car is moving and no sound? ;)
then change parameter in config file "speed_for_moving_cursor_when_gps_off" to some value, like "20" (this means speed 72km/h)
By setting speed parameter to 20.0 and renaming en.txt to en.tts, the voice simulation works now.
I'm testing TTS navigation for now under the condition:
Locus Language : English
TTS Engine : Google TTS
Compute source : MapQuest
1. For "approximately after %N1 kilometers",
'%N1' is not replaced with numbers but is pronounced literally.
2. Tapping [Settings] -> [Navigation] -> [Choose voice] -> [Text-to-speech] or
[Nav button] -> [Choose voice] -> [Text-to-speech] during navigation,
the device speaks "You've arrived at your destination". Isn't it strange?
3. It seems that the last voice before a turning point is usually given at 200 meter before the point.
Is this reasonable distance? It may be good for Cars but too far for cycle and for Foot.
Well I'm not sure if this issue should be discussed here now but I wrote it just to remember...
I was just a day on small "trip" by car and
1. may confirm, funny issue, I'll fix it
2. I used this text for "information" voice that confirm, your voice works. Anyway I'll add there some text specially for this case
3. imagine Locus things you still ride 72km/h. Distance for voice commands is computed by your speed and because you ride still too fast, last distance should be 200m. Set value to 10.0 and you'll hear difference
Quote from: "menion"2. I used this text for "information" voice that confirm, your voice works. Anyway I'll add there some text specially for this case
I think it may be nice if the information voice text also appears as a 'TEST PHRASE' in Text-to-speech settings dialogue. It is currently "Do you like Locus?" which is shared with the Main menu as a section title.
Quote from: "menion"3. imagine Locus things you still ride 72km/h. Distance for voice commands is computed by your speed and because you ride still too fast, last distance should be 200m. Set value to 10.0 and you'll hear difference
Oh. I see. I didn't notice that the voice depends on the speed. Sorry. I just selected 'Cycle' or 'Foot' for route calculation.
editI've just updated ja.txt and en.txt at my first post in this topic.
Please note that I changed identifier name of "dist_mil" to ''dist_mile"
Well I know it's just an id-name and any text can be used if the id-name between config file and source code is consistent. But, mil is a different unit in length and not an abbreviation of mile. So I think it is better to change...
Quote from: "ta-ka"1. For "approximately after %N1 kilometers",
'%N1' is not replaced with numbers but is pronounced literally.
Quote from: "menion"1. may confirm, funny issue, I'll fix it
I've got some clue. The key may be decimal number in distance and internal/external .tts file.
When .tts file exists in Locus folder and distance value is decimal number (not integer number)
for example 1.5 km, the problem seems occur.
But when there is no .tts files in Locus folder, ie internal tts file is used, '%N1' is properly replaced and
no problem happen even if distance value is decimal number.
After I have reached my destination - i never heared the string "you've arrived at your destination".
what's wrong?
Quote from: "gynta"After I have reached my destination - i never heared the string "you've arrived at your destination".
what's wrong?
Please check the symbols for the waypoints: Usually they indicate turn left, right etc and the last waypoint should have a flag indicating the destination. But not for all Locus routing services this is created, e.g. for the inofficial google routing service the destination waypoint is missing.
I've heard the voice "You've arrived at your destination".
Try attached the gpx file for navigation test.
With this gpx file, you will also hear that the '%N1' is pronounced literally.
By the way, who fixed my mistake in the en.txt? Thanks.
Quote from: "ta-ka"..."You've arrived at your destination". Try attached the gpx file.
Ah i see. It is also a calculation "problem". Distance from the last instruction and speed. Isn't it?
Quoteyou will also hear that the '%N1' is pronounced literally.
An already reported problem - ignore it yet.
Quotebtw, who fixed my mistake in the en.txt? Thanks.
np ;) tiny mistake - had no effects for Locus - only for my eyes :)
@menion: in this thread are two en.txt files - maybe we can remove one of them...
Hint: Your file include small errors :D
hi guys, I had to change a format a little, you'll see.
Anyway my biggest problem now, is how to work with these files and how to allow others modify them and even keep them updated in locus itself. Any ideas? Because publishing over posts here, is useful for max two tts files. For more, it's crazy. So some shared folder on dropbox/google drive for example?
Quote from: "gynta"Quote from: "ta-ka"..."You've arrived at your destination". Try attached the gpx file.
Ah i see. It is also a calculation "problem". Distance from the last instruction and speed. Isn't it?
Yes, I agree. It depends but I haven't figured out what exactly condition is...
@menion
I have an another problem of the unofficial Google route calculation and TTS voice navigation of Japanese roads.
Japan is a left-hand traffic country. But the Google route calculation in Locus wrongly shows right-hand traffic route. Therefore the TTS voice navigate to the opposite direction.
Well, it's an unofficial function but could you please fix this?
guys forget on most problems you wrote about here. I was two days in bed so I hope I discovered and fixed most of them today.
I had to improve little bit system for TTS files, they're in first post together with description
Testing version is just uploading to specific post viewtopic.php?f=25&t=3189 (http://forum.locusmap.eu/viewtopic.php?f=25&t=3189)
EDIT: ah ta-ka, sorry I forget to check your last post ... so hope tomorrow
I've just updated ja.tts file.
@menion
Please fix typos in en.tts.
Text-to-speed -> Text-to-speech
nineth -> ninth
Quote from: "menion"EDIT: ah ta-ka, sorry I forget to check your last post ... so hope tomorrow
I see. Thanks!
Quote from: "ta-ka"@menion
Please fix typos in en.tts.
Text-to-speed -> Text-to-speech
nineth -> ninth
done...
thanks guys :)
what you think about this format? Everything clear? Everything works? It's usable for you as is?
I ride with this already about 200km and for me, it works perfectly.
If you'll miss any notifications, tell me, I'll improve it
Quote from: "menion"If you'll miss any notifications, tell me, I'll improve it
from version 2.13.X+ thread:
Quote from: "menion""better text fro clock/distance instructions" - you mean for a guiding? I'll improve support for text configuration TTS file to cover also commands for this guiding. Next week ...
Not sure how you want to improve the text but in latest test version it's still the same "x Meter von y Stunden"
this is not yet improved ...
I was yesterday working on new "Convert track to navigation route" system, but it seems to be more complicated. Anyway I'll add meanwhile TTS into these configs also.
Btw. what order should be more usable then this?
Hm, I expected this text can also be configured in <country>.ts.
Anyway, the text in German should be "x Meter Richtung y Uhr".
Another question (I admit it's a bit off-topic but has to do with TTS).
There are navigation instructions "after 50m turn right" and later "after 100m turn left" " and sometimes its "after 50m turn right then after 100m turn left". What is the exact condition that Locus concatenates the two instructions??
Or is this info coming from the online routing service
Quote from: "menion"Btw. what order should be more usable then this?
"%D %U word %H word" ..was ok, but currently we have no string to translate in crowdin.
%Distance
%Unit
%Direction(Hour)
editAs tommi wrote (his reply was quicker) put it in the *.tts file
but you have to do this also in crowdin, because not all user have an *.tts file in the locus folder...
Quote from: "ta-ka"I have an another problem of the unofficial Google route calculation and TTS voice navigation of Japanese roads.
Japan is a left-hand traffic country. But the Google route calculation in Locus wrongly shows right-hand traffic route. Therefore the TTS voice navigate to the opposite direction.
Well, it's an unofficial function but could you please fix this?
Google remain unofficial, because their terms-of-use do not allow to use result on other then Google Maps ... funny. Just to explanation
I'm testing this route compute in tokio and I get correct results. May you please write me exact start and end coordinates of your route, so I may test it on my own? Thanks
Please find attached a gpx file which contains start point and end point for route calculation test.
The route should go though the junction which I've shown in the screenshot.
Thanks in advance.
thanks ta-ka, this helps. Google compute of route is little bit weird, so if there will be some more problems, this "gpx" sharing is best way for me to fix it.
Quote from: "tommi"Another question (I admit it's a bit off-topic but has to do with TTS).
There are navigation instructions "after 50m turn right" and later "after 100m turn left" " and sometimes its "after 50m turn right then after 100m turn left". What is the exact condition that Locus concatenates the two instructions?
Or is this info coming from the online routing service?
Menion, could you answer on this? Thanks.
ah yes , sorry. These instructions are generated by myself. If there is distance up to 300 metres, between orders, locus say both, otherwise just current. And both are also said only in case, you're closer then 200 to first command
Quote from: "menion"ah yes , sorry. These instructions are generated by myself. If there is distance up to 300 metres, between orders, locus say both, otherwise just current. And both are also said only in case, you're closer then 200 to first command
I think the generation of these wpt's with the extensions rteDistance, rteTime, rtePointAction are also one key element for "Convert track to navigation route".
Menion, I'm working together with a new forum member Willy (member name 0709, he does the main work) on a proposal on exactly the same topic "convert track to navigation route".
We would be happy if you would read it and also tell us the problems you see with this feature. Unfortunately the document is not yet ready, you surprised us with your statement about this. I think maybe Thursday/Friday we could give you a reasonable draft. Now after I read you are working on this topic we may skip some parts like motivation etc and concentrate on the technical aspect.
What do you think?
sure, possible. I just two days ago created new part of code called "TrackNavigationGenerator". It should have simple purpose. I take track from GPX and put it inside. Result should be same track, together with many waypoints that will have attached these parameters, like rtePointAction etc. So exactly same parameters I generate from track you compute over mapQuest etc. So probably similar to what you do.
I have this already in mind and it should be quite simple. Every track in locus will have button "navigate". If this will be pre-computed (mapQuest, cloudmade, ...) it will work as normal navigation. If not, it will in first step go through "TrackNavigationGenerator" and then .. voala, normal navigation :)
I was just stuck on start, so not much work is done yet
Quote from: "menion"sure, possible. I just two days ago created new part of code called "TrackNavigationGenerator". It should have simple purpose. I take track from GPX and put it inside. Result should be same track, together with many waypoints that will have attached these parameters, like rtePointAction etc. So exactly same parameters I generate from track you compute over mapQuest etc. So probably similar to what you do.
Nice, in our document there is something similar called "The Directional Waypoint Generator".
I compared the voice navigation of the google route between version 2.13.1.4 and version 2.13.1.5.
version
2.13.1.4 : (1)take exit right -> (2)stay left -> (3)take exit right
2.13.1.5 : (1)take ramp left -> (2)merge left -> (3)take ramp right
- At the entrance of the JCT (1), the direction is correct now (take ramp left).
- At the middle of the JCT (2), it was correct (stay left), but it becomes wrong (merge left).
- About the end of the JCT(3), there is a difference (exit, ramp) but I don't know which is correct.
Hum... I think I should prepare another sample for test.
thank you for test, I fixed second point so now it should be correct
2.13.1.6 : (1)take ramp left -> (2)stay left -> (3)take ramp right
Could you fix another two wrong TTS voice navigation by google route for left-hand traffic?
Please find two sets of start/end points in gpx file. The voice should be "Take ramp left" for both.
Thanks in advance.
Edit:
I've updated ja.tts in this topic (2013-07-29).
Google Directions API is still mystery for me ...
in your files are two tracks (four points)
for track 02, this is URL request
http://maps.googleapis.com/maps/api/dir ... 140.587490 (http://maps.googleapis.com/maps/api/directions/json?mode=driving&sensor=true&origin=35.936488,140.591986&destination=35.932020,140.587490)
for track 03, is here
http://maps.googleapis.com/maps/api/dir ... 139.538595 (http://maps.googleapis.com/maps/api/directions/json?mode=driving&sensor=true&origin=35.812428,139.542877&destination=35.800995,139.538595)
you may see that in track 02 is only HTML instruction for specific point on map. So from this HTML text, I'm trying to get some valuable information which is not always possible, crazy. In track 03, you may see value "maneuver", which fortunately say what to do on this point. This value is anyway in request rarely, so mostly I have to parse values from HTML instructions. Anyway in track 03, I use for "maneuver" : "fork-left" value "Stay left", which is probably more precise, because for "Take ramp left", there is "maneuver" : "ramp-left"
don't know if you understand what I wanted to say :). Just navigation computed by Google is still little bit crazy for me ...
Thank you for the detailed explanation.
If I understand the issue, the google route sometimes doesn't contain direction information (left or right) in html instructions and at the same time maneuver is not available, so it's not possible to know which direction to go.
How about an idea to add new entry "take ramp" into en.tts and use it when no direction information is found in instruction? I mean TTS voice just indicate the existence of ramp without its direction.
Quote from: "tommi"Quote from: "menion"If you'll miss any notifications, tell me, I'll improve it
from version 2.13.X+ thread:
Quote from: "menion""better text fro clock/distance instructions" - you mean for a guiding? I'll improve support for text configuration TTS file to cover also commands for this guiding. Next week ...
Not sure how you want to improve the text but in latest test version it's still the same "x Meter von y Stunden"
Quote from: "gynta"Quote from: "menion"Btw. what order should be more usable then this?
"%D %U word %H word" ..was ok, but currently we have no string to translate in crowdin.
%Distance
%Unit
%Direction(Hour)
edit
As tommi wrote (his reply was quicker) put it in the *.tts file
but you have to do this also in crowdin, because not all user have an *.tts file in the locus folder...
Should it now possible to get a better translation for "x Meter von y Stunden" like "x Meter in Richtung y Uhr"?
In Locus 2.14.0 it's still the bad text.
yes, it's not yet included in this version. Current TTS system in 2.14.0 is just for voice navigation, not for any guiding features
btw. to all who wants to test custom TTS files. I've changed path to custom files from default root directory to
Locus/data/tts
so just place for example de.tts to test custom TTS files
I copied en.tts and ja.tts into Locus/data/tts but Locus still uses old navigation voice.
By the way, the large font of the distance meter is nice.
Quote from: "ta-ka"I copied en.tts and ja.tts into Locus/data/tts but Locus still uses old navigation voice.
By the way, the large font of the distance meter is nice.
Don't know if this necessary but did you restart Locus after copy?
Quote from: "tommi"Quote from: "ta-ka"I copied en.tts and ja.tts into Locus/data/tts but Locus still uses old navigation voice.
Don't know if this necessary but did you restart Locus after copy?
Yes, of course.
If the voice come from en.tts, Locus should say "start the car and go" as soon as car navigation starts.
Quote from: "ta-ka"I copied en.tts and ja.tts into Locus/data/tts but Locus still uses old navigation voice.
By the way, the large font of the distance meter is nice.
Can confirm - there is a problem...
tts works with crowdin words.
yes, i moved *.tts to ../Locus/data/tts/..
ah damn, two smaaal bugs on one place. One that made that internal tts files do not work, second that external tts files do not work. I was so sure that this will work, that I do not tested it correctly.
Sorry guys. I'm sure there will be more problems, so I'll try to fix them all to new, soon coming version
Locus/data/tts/*.tts file works again in 2.14.0.3
btw
please let Locus create the tts folder with a default en.tts file.
"btw" done ... locus will export last TTS file as a sample into tts directory
Quote from: "menion""btw" done ... locus will export last TTS file as a sample into tts directory
In all available languages?
no :) just sample english. All other languages should be available somewhere for some public editing .. i'm still not sure how to do it
hi guys,
I've updated first paragraph, where is description of current TTS system and how to improve it. So if you're interested in this topic, read it and ... improve it :)
Updated TTS files a little bit. Mainly added TTS commands for 'POI alert' feature
12. 01. 2014
- from 'distances_D' removed word 'after' !!. It's needed to put this work to all "actions_A" manually. Mainly to 'action_dist', 'arrive_at_dest_dist', 'turn_u-turn_dist', 'roundabout_dist' and 'roundabout_dist_exit'
- added 'actions_A' for POI alert notification - 'poi_alert_point_X', 'poi_alert_X_points'
- added required numbers for '11' and '12'
If anything isn't clear, let me know!
Please add text for of-track notification, please. The German word by word translation for this is horrible.
What about my idea to allow adding text for other distances than the defined ones as well?
now it's possible, so notification added to TTS text file
about distances - is this really needed? Because I still do not see any reason for this. Low distances are just disabled (below around 30m) and for longer is not important if TTS say 350 or 330 m, isn't it?
Quote from: menion on January 13, 2014, 07:22:16
about distances - is this really needed? Because I still do not see any reason for this. Low distances are just disabled (below around 30m) and for longer is not important if TTS say 350 or 330 m, isn't it?
I'm more interested in the range between 100 and 200m.
Anyway, seems your opinion is changing from time to time:
"About distances in tts file - you have good idea. Currently Locus expect values as are defined in en.tts. But you're right, I should allow to add there values you want. Good point, I'll look at it. Anyway till then, Locus take only values that are defined in en.tts"
Source: http://forum.locusmap.eu/index.php?topic=3372.msg25681#msg25681
yes I remember this. I have anyway changed some parameters that defined when you should hear notification, so in most cases, it should work correctly now. Anyway if you still miss some distances, I can add them into TTS files.
Currently whole system for TTS I use, is not so "free", so there needs to be defined parameters, I allowed in code of Locus. Sorry ...
I've improved ja.tts at google drive. Please include that for next version.
Thanks in advance.
I'm always updating it to final public version, but sometimes forget to update it also to test version. Sorry ...
Quote from: tommi on January 12, 2014, 21:14:49
Please add text for of-track notification, please. The German word by word translation for this is horrible.
Quote from: menion on January 13, 2014, 07:22:16
now it's possible, so notification added to TTS text file
I tried to adapt my de.tts based on the en.tts from 2.18.07.apk. I see you added a new line for translation "navigation_too_far_from_track". However, I still hear the word-by-word translation and not the new text.
Here a snippet from my Locus/data/tts/de.tts:
"navigation_start_foot": "die navigation wird im fussgängermodus gestartet",
"navigation_too_far_from_track": "Track liegt %D Richtung %N1 Uhr",
"tts_set": "die sprachausgabe wurde aktiviert",
Did I do someting wrong?
Hello tommi,
Have you modified "version":1, to "version":2, in de.tts file?
@menion
Thanks :)
Quote from: ta-ka on January 19, 2014, 15:15:14
Hello tommi,
Have you modified "version":1, to "version":2, in de.tts file?
Thank you ta-ka, that helped.
yes I had to add this "versions" parameter. Because I need to separate what texts TTS file contain. I decided to always do internal version of texts based on common translation and also these TTS files. If I find TTS file in users language and in version that contain required feature, i'll use this file, otherwise internal translation will be used.
So to be more specific. If user enable TTS for POI alert and has set Japan as langauge, I first check for ja.tts file, then if this file is in version 2. If any of this is not success, I'll use texts generated from translation from crowdin. Simple and I'm sure it will work.
I also spend quite a lot of time on making whole TTS indepenent on navigation, so I think, we should now extend TTS to other tasks in Locus if there will be need ...
@tommi
you're welcome :)
@menion
Locus Test 2.18.0.7 creates 'Locus/data/tts/en_sample_v1.tts' if it doesn't exist, but actual version is '2'. So, the file name should be 'en_sample_v2.tts' or simply 'en_sample.tts' would be OK because the version is written in the file.
Quote from: menion on January 19, 2014, 15:46:05
I also spend quite a lot of time on making whole TTS indepenent on navigation, so I think, we should now extend TTS to other tasks in Locus if there will be need ...
You mean, for example, Locus TTS could be extended to tell us how many kilo-meters travelled or how long time you travelled for every certain distance/time during track recording? If so, it's exciting! ;D
you're right with the file ... thanks
and yes it can. Because I also run a little, I plan during this year finish our (my mainly) long fight with "Navigation generator" and also add better support for some sport activities, like TTS notifications during track record, also some notifications on for example heart rate values, zones etc. We will see, but I believe this won't be a big problem now ...
Quote from: menion on July 07, 2013, 14:44:19
How to help/translate
- recommended way to modify is - in you Google Docs (http://docs.google.com), tap on "Tools" > "Manage apps" > "Connect more apps" > "Anyfile Notepad"!
Anyfile Notepad? can't found.
hmm weird. I'm not much skilled with these "Google drive stuff". And it's also just a recommendation ...
Seems it may be also installed to desktop Chrome browser here https://chrome.google.com/webstore/detail/anyfile-notepad/ghlichmdnegmcpafgmmlpkegmcndlndi . It's just useful text edit that very nicely highlight JSON files and possible problems if occur (JSON is format in which are wrote these TTS files, just for sure)
Quote from: menion on January 19, 2014, 18:08:45
I'm not much skilled with these "Google drive stuff".
:D
does anyone know why the icons are different?

(http://postimg.org/image/utsgqn0c7/)
Due to the strange filename "de.tts.tmp20140119-3718-1o3zgfi"??
editfiles downloaded and re-uploaded
looks better now :)
Hello gynta,
I'm not skilled with google drive stuff too, but I've just found one typo in de.tts. "yd:" [ -> "yd": [
i think "yd" has no effect for most of german users :)
- but I'm excited about your thoroughness - thx Takayuki
Just did the russian translate. :) I hope with no mistakes with JSON syntax.
amazing!!! thank you
Hello everyone.
I have not tried the TTS yet, but the attached file for the Spanish Latin language version 1 :). Any suggestions or corrections are welcome.
Greetings.
Quote from: tigus on May 21, 2014, 15:12:21
attached file for the Spanish
Hello tigus
First: thx
Are u able to do this on the right place? (google drive)
See first post:
Quote from: menion on July 07, 2013, 14:44:19...
How to help/translate
...
...
If you have problems - we will help you
Gynta Hi, I read the first post. But I have no way to upload a new file. Menion says that if a new language, it is not, you write. In this case I took a position as associate the file to add it to Google Drive.
Greetings.
Edit: I just saw as appending the tts folder to my Google Drive :). I did not know how to do it ... now I upload the file.
Greetings.
Recent Google Text-to-Speech finally supports Japanese. But I found some strange pronunciation during voice navigation in Locus. So, I've improved ja.tts at google drive in order to make it works well with both 'Google Text-to-Speech' and 'N2 TTS (another Japanese tts engine)'. Could you please include the new ja.tts into next Locus release?
Thanks in advance.
thanks ta-ka, sure
Hi guys,
I'm currently in need of improved version of TTS commands. Example in worst language ever - Czech :).
- 1 metr
- 1.1 metru
- 2 metry
- 5 metrů
Problem here is, that current TTS fiels do not have support for some decimal distances. And I need them for for example 1.25 kilometers value. So I've created version 3 of TTS files where all distances for kilometres and miles now do not contains value "Approximately" as before. Instead of, there are precise values like for metres, feet etc.
I've also added new parameter "%NDec meters, 0, Inf" , where for %NDec will be supplied decimal number formatted by Locus and this will be applied to all decimal numbers. Is it usable also for other languages then Czech and English? I just need to know, if decimal number are read in your language all same, like in Czech or English. Like 1.1 kilometers, also 1.5 kilometers, also 135.34 kilometers etc.
In TTS is also added one new section for time formatting. I'm preparing one new nice feature :).
EDIT: btw. if someone of you improve german TTS file, I'll publish test version today ;). Thanks
Hello menion,
possible way of speaking in german language:
1.1 kilometers > Eins Komma Eins Kilometer
1.5 kilometers > Eins Komma Fünf Kilometer
or > Eineinhalb Kilometer
1.25 kilometers > Eins Komma Zwei Fünf Kilometer
note: not Eins Komma Fünfundzwanzig, each decimal numer is spoken behind the other
fine, in all cases, spoken distance ends with "Kilometer", fine. Same in Czech and also in English. So it should be ok then. Thanks
Hi menion,
In Japanese, it's always "kilometer" for any decimal numbers.
Quote from: menion on March 23, 2015, 13:42:20
In TTS is also added one new section for time formatting. I'm preparing one new nice feature :).
I guess this is for estimated amount of time to destination and not for estimated time of arrival. I would like to be sure.
Quote from: ta-ka on March 23, 2015, 15:30:14
Hi menion,
In Japanese, it's always "kilometer" for any decimal numbers.
Perfect, thanks. So solution should work in this case.
And time - is purpose important? Because non of your options is correct. Anyway in future it should be used for various purpose
Quote from: menion on March 23, 2015, 15:41:00
And time - is purpose important? Because non of your options is correct. Anyway in future it should be used for various purpose
My guess was wrong... :'( Never mind.
I asked the question because there are different spoken words for 'duration time' and 'exact time'.
So, the various purpose contains only one type of them, it shouldn't be a problem.
But if both types are mixed, it will be a problem.
hmm I found same problem in Czech now. Damn. How easy English is ... :). Thanks, I'll have to make TTS file even more complicated. So stay a day, two with translating, there will be some changes
Fine, so en.tts and cs.tts are now converted to version 3. More information about what has changed is in README file, so please read it!
Feel free to ask if something won't be clear. I'll then add more comments on required places. Thanks!
Quote from: menion on March 24, 2015, 07:09:37
en.tts and cs.tts are now converted to version 3
de.tts also...
updated ja.tts to version 3.
fixed missing commas in en.tts.
@gynta, thanks!
@ta-ka, I'm surprised it worked for me even with these issues, thanks!
I'm for @Christian and @0709 preparing one surprise (hope it will work, do not know yet :) ), so test version will have a delay few days maybe. Be prepared ;).
If there is no need to replace the digits in "numbers_N1", is it allowed to make it empty?
},
"numbers_N1": { },
"numbers_N2": {
Or, is it allowed to completely remove it?
},
"numbers_N2": {
In ja.tts, "numbers_N1" doesn't contain the words to replace but only digits like follows.
"numbers_N1": {
"1": "1",
"2": "2",
"3": "3",
that's what I wanted to say you. I think there have to be at least empty N1 category. Locus tries to find required "translation" (for example for "1" in English - "one") and if there is no such translation, number itself is send to TTS engine. In languages where numbers are always same it is not a problem.
It is useful for languages like Czech, where exists many various of word "one" - jeden, jedna, jedno, etc.
In case of popular freely available Japanese TTS system in android like Google TTS or KDDI N2TTS, passing numbers as digits to the TTS system gives satisfiable results for cardinal numbers, as the TTS system takes care of different pronunciations. Only ordinal numbers have to be replaced in Locus. So, I'm going to test and update ja.tts.
Quote from: menionIt is useful for languages like Czech, where exists many various of word "one" - jeden, jedna, jedno, etc.
Knowing about other language is always interesting. ;)
I tested ja.tts with empty "numbers_N1" as shown the first code in post #86, and got an error message below just after locus start to speak something. There was no force close. Locus kept working but voices of Navigation/Guidance/Training were complicated mixture of Japanese and English.

(http://postimg.org/image/cghj6zdd5/)
Ah I'm checking what I did in code and indeed, all defined containers needs to have at least one item, sorry. So for numbers, I'll improve this to next version.
Answer to problem mentioned by ta-ka here: http://forum.locusmap.eu/index.php?topic=4467.msg35838#msg35838 - missing notification for 1 hour, 0 minutes
Issue was in TTS file, where were no configuration for '0' minutes. Please check modified EN or CZ file what I mean (extra '0' parameter in TIMES_T1 container.
I should today publish one quick special version right here on forum, so if you modify these TTS files, I'll include them into version. Same with Crowdin, thanks!
@menion thanks for the fix of 0 minutes issue.
updated ja.tts : "numbers_N1" is empty now.
fixed en.tts : 's' after mile was missing at "%N1 mile per hour, 2, Inf"
EDIT:
crowdin done. (except Locus GIS, sorry for that)
damn
that means, my file also need a fix...
brb :)
edit
done (tts and crowdin)
thx ta-ka!
thanks guys
The warning popup message reported in post #89 still appears in version 3.7.1.4.
Haven't it fixed yet? Or, is there anything wrong in ja.tts at google drive?
Could you please have a check?
About Training, I've noticed that Locus pronounces annoying 'comma' between variables if Japanese voice is selected. Could you please improve this?
QuoteI've noticed that Locus pronounces annoying 'comma' between variables
i noticed the same if i use Samsung TTS :-[, if i use google TTS it work for me :)
Quote from: menion on April 07, 2015, 13:30:55
@ta-ka, problem with comma should be a problem. It's weird that TTS reads it, weird. Google TTS or Czech Ivona TTS reads it correctly - just as a small break. Hmm ...
Is the adding 'comma' hard coded in the program source? If so, how about to take it out to ??.tts/crowdin text as a parameter.
"short_pause": ","
"short_pause" can be 'comma' or 'white space' or any other appropriate character depending on Language and TTS engine.
Btw, reading balloni and your post, I confirmed Japanese Google TTS doesn't speak comma, too. However KDDI N2TTS speaks comma...
Quote from: menion on April 07, 2015, 20:58:01
@ta-ka: adding "separator" to tts is not something I want. Main reason why TTS file was created, is to be able to define some special texts that will TTS engine read correctly. Because some TTS engines reads this correctly, some not, I'll try to think and find some general solution.
Seems it is a long known global problem: https://code.google.com/p/ankidroid/issues/detail?id=907 and some other pages
Hmm as I think about it, I'll try to next version add a dot instead of comma.
Quote from: ta-ka on April 07, 2015, 18:34:27
However KDDI N2TTS speaks comma...
Think "KDDI N2TTS" only known in asia? Isn't it?
So can't check this TTS-engine.
After some tests with "IVONA" "Samsung" "SVOX" and "Google":
SamsungTT german "Hallo , Peter" read a "comma"
SamsungTT german "Hallo, Peter" ignores the "comma"
SamsungTT english "Hello , Peter" ignores the "comma"
SamsungTT english "Hello, Peter" ignores the "comma"
Only the combination "Hello-space-comma-space-Peter" with german Samsung brings a problem.
All other TTS-engines and combinations ignores the "comma"
@Menion is there any "%X-space-comma-space-word" combination inside Locus TTS?
should be "%X-coma-space-word".
I post here about the discussion of comma and tts.
Quote from: menion on April 07, 2015, 20:58:01I'll try to think and find some general solution.
Hmm as I think about it, I'll try to next version add a dot instead of comma.
I'm afraid but "dot" won't be a general solution. I confirmed it is literally pronounced by N2TTS as shown in a video below.
https://www.dropbox.com/s/a99451wtokegpz0/20150408_tts_comma_period.mp4?dl=0 (https://www.dropbox.com/s/a99451wtokegpz0/20150408_tts_comma_period.mp4?dl=0)
Quote from: menion on April 07, 2015, 20:58:01Main reason why TTS file was created, is to be able to define some special texts that will TTS engine read correctly.
Because some TTS engines reads this correctly, some not,
To read, or not to read, that is the question. 8)
Since "," and "." are not punctuations but special symbols in Japanese, it makes a sense that N2TTS pronounce it literally. On the other hand, it is known that "," and "." are punctuations in a lot of languages in the world. So, it also makes a sense that Japanese Google TTS doesn't pronounce it but put a pause for convenience. Which is correct? It is difficult to say.
Japanese punctuations are "、" and "。" which correspond "," and "." respectively. When we read Japanese text, we put a short pause at "、" and a longer pause at "。". (We learn it at primary school ;)) Please note that both Google TTS and KDDI N2TTS put a pause on "、" and "。" and don't pronounce them. It is correct behaviour.
Quote from: menion on April 07, 2015, 20:58:01adding "separator" to tts is not something I want.
Then how about to introduce punctuations entry in tts file and put it between variables? (period is for further compatibility.)
"comma": ","
"period": "."
In fact, I usually translate "," to "、" in ja.tts and crowdin.
Quote from: gynta on April 07, 2015, 23:06:25
Think "KDDI N2TTS" only known in asia? Isn't it?
So can't check this TTS-engine.
@gynta Thanks for trying to test even Japanese TTS :). I think it is Japanese language specific TTS. Is it possible to open google play with this url?
https://play.google.com/store/apps/details?id=jp.kddilabs.n2tts
If it's not successful, you may try apk downloader.
Very nice explanation, thank you!
Then check TTS files, added:
"special_comma": ", ",
"special_period": ". "
hope it helps
Thank you for quick answer and decision as always!
And, please fix empty "numbers_N1" issue (post #89) as well. ;)
EDIT:
updated ja.tts
I've confirmed that the warning message "incorrectly initialized action %N1" still appears in 3.7.1.6 and in this case the voice system of Locus falls back to crowdin text base. I'm sure that empty "numbers_N1" in tts file cause the issue and it's possible to reproduce it by using attached en.tts.
Now, I would like to ask again whether empty "numbers_N1" is a valid format or not. If valid, please fix the issue to properly load tts file. (for both tts file integrated in Locus and placed at data/tts folder.) If invalid, I'll re-modify ja.tts at google drive with non-empty "numbers_N1".
Ah I had a check for valid amount of items in number_X folder on two places, not just on one. Sorry, fixed, thanks.
Thanks for the fix.
I've updated ja.tts for improvement. This should be the final for next Locus release. Please fetch it. (sorry for many time.)
Thanks for updates! And no need to worry. It is just my problem, that I do not have any automatic system for updating TTS files in Locus source code! ;)
Added new "ru.tts"
Quote from: Sersus on April 20, 2015, 21:25:45
Added new "ru.tts"
That was quick :)
And it works for you now - after copy to ../Locus/data/tts/ ?
Quote from: gynta on April 20, 2015, 21:30:01
That was quick :)
And it works for you now - after copy to ../Locus/data/tts/ ?
No :))) I just must place "ru.tts" file in that directory for proper working?
jup
edit
for now.
With next update, your file will be included inside Locus - hopefully :)
Quote from: gynta on April 20, 2015, 21:47:07
With next update, your file will be included inside Locus - hopefully :)
For sure! Thanks for translation. Placing to "tts" directory is useful for testing, before I release a new version with already included TTS file
Quote from: menion on July 07, 2013, 14:44:19
If you want to translate TTS to language that is not on Google Drive, write me and I'll gladly add it.
Hey,
thanks for the great app.
Can you share pl.tts?
I would like to try to improve Polish translation.
Quote from: pelsta on June 30, 2015, 21:58:25
Can you share pl.tts?
I would like to try to improve Polish translation.
read in first post:
http://forum.locusmap.eu/index.php?topic=3227.0
How to help/translate....
edit...but if you have problems to translate on google drive,
you will find the "en_sample_v3.tss" text file on your device in ..Locus/data/tts/..
Translate the file and attach it here.
I read this post.
But there is no pl.tts file on Google Drive...
edit
I translated en_sample_v3.tts but I have some doubts.
I want to compare my translation with Polish translation built-in Locus.
Of course there is no po.tts
and you! are the guy to help now :)
You mean the polish app translations?
https://crowdin.com/project/menion/pl
Quote from: gynta on June 30, 2015, 22:55:41
Of course there is no po.tts
But I hear Polish voice during navigation!
There are some errors.
For example, he says "meters" but in Polish should be "metry"
Quote
You mean the polish app translations?
https://crowdin.com/project/menion/pl
No. I mean polish voice during navigation.
.
Here we say: "what's first - egg or chicken?" ;)
Standard text are inside app - see link to crowdin.
https://crowdin.com/translate/menion/all/en-pl#q=meter
If you want, YOU can add a po.tss to Google Drive
Menion take this file later and will include this in next(?) update
btw.
You can also help to translate the missing words on
https://crowdin.com/translate/menion/all/en-pl
Understood :-[
This is my pl.tts
Quote from: pelsta on July 01, 2015, 13:18:29Understood :-[
Why so sad?
QuoteThis is my pl.tts
thx, upload done

(http://postimg.org/image/djy8anl0x/)
Hi menion,
I don't know why but I'm not able to edit ja.tts on Google drive. So, I put here the ja.tts v4 for Locus beta 3.10.3.5+.
Thanks in advance.
Quote from: ta-ka on July 18, 2015, 16:10:05
So, I put here the ja.tts v4 for Locus beta 3.10.3.5+
uploaded to drive.. thx
Thanks, gynta :)
I've just added a new vesion (4) of RU translate.
Thank you. No need to inform me about this anymore. I've just completed script that download translations from Crowdin, updates TTS and some other stuff before release, so there should be always fresh data.
Quote from: 0709 on November 12, 2016, 21:40:50
Video demo: https://youtu.be/h2FcSWFMvkY
Shows Flip cover proximity control by DTSO app and Locus Navigation in action.
The idea of using proximity sensor to light up the screen in such a useful way is brilliant! It could help to eliminate the necessity of pushing the phone's button every time to unlock.
Could you please add a new variable "times_T2" in tts file to be used for 'current time' in training manager?
In beta version 3.21.1.18, it seems that "times_T1" is used to express current time. But it is not neccessary for english because, for example, 9:15 is pronounced as nine-fifteen without hour(s) and minute(s). On the other hand for japanese, additional words after 9 and 15 are required and those words are different from "times_T1".
Hi ta-ka, check new version 5 of tts files, there should be all you need. Let me know if some of changes won't be clear, thanks!
Hi, menion.
Thanks for very fast response as usual :) I've uploaded ja.tts v5 file to google drive.
Here is my modifications from v4:
1. modified value_day_time value_time_current from "%T1" to "%T2"
2. renamed heart_rate_value to value_heart_rate
3. added "paces_P1"
4. In "times_T2", removed "parent": "T1" and created "hours", "minutes" and "seconds"
EDIT: updated for v5 (24.2.2017)
That is exactly what is needed! Thanks, I'll today publish new Beta so you will have chance to test it ...
Hi, menion.
I've updated ja.tts for v5 (24.2.2017). Please confirm and fix followings.
en.tts: parameter for 'value_speed_avg_interval' and 'value_speed_avg_track' should be "%V1" but not "%D1".
README.txt: 'value_day_time' -> 'value_time_current'
Hello ta-ka, thanks, fixed/updated!
uploaded version 5 for the Russian language ...
container 'timer_T2' decided not to add - not sure how it will affect
amazing thanks. T2 is optional so as long as you do not use it in "actions", there should be no problem.
Russian translation changed.
The word "interval" is replaced by "period" ("Интервал" --> "Отрезок")
So it must be better. :)
Thank you for information. No worry ... these files are updated automatically when APK file ( installation file ) is created, so they should be always updated.
I want to remind tts translators that tts files on google drive has been (silently :P) updated to version 6. (or did I miss announcement?)
{
"version": 6,
"language": "en",
"actions_A": {
...
...
hmmm ::)
Well yes, it was "silently" :). Changes was not so big and I also made a system that if there will be "only" version 5, it will be still used and missing content will be translated manually from texts from crowdin ( like when this file is missing ).
Anyway thanks ta-ka :).
Parameter "%S" in "*.tts "
"merge_left_on": "merge left on road %S",
...
"pass_point": "%S",
...
"pass_point_dist": "%S after %D2",
...
"poi_alert_point_X": "Point %S lies %D2 on %N1 o'clock"
stopped voicing?
or am I expecting the wrong?
expected Point name...
I'm not aware of any problem here.
You may try POI alert feature to confirm functionality.
If you wants to hear names of points during navigation, they needs to be a "Via points" generated in Route planner for example.
TTS system published on GitHub as a separate repository.
So feel free to use it, modify and contribute back if interested.
GitHub link: https://github.com/asamm/locus-map-tts-commands