Teken Posted December 19, 2016 Share Posted December 19, 2016 This AT&T TTS site used to let you enter and download TTS bits. I haven't tried it in years (I'm on mobile now, and can't try) http://www.wizzardsoftware.com/text-to-voice.php Thanks for the extra resources but sadly after doing a quick test. The ATT TTS voice is very much 1980 robot talkish which compared to *Julie US* makes it look and sound utter crap. Link to comment
TheFallenAngel Posted December 19, 2016 Share Posted December 19, 2016 (edited) Amazing voices at https://www.cereproc.com one could get the SDK but the cloud option is so easy, with two lines of code on pretty much any dev. language, you get a great voices. You can get 100,000 credits for £20 and that would last a long time in a house hold Voice can be test at the top of each page (black bar). EDIT: I am playing with the cloud service and it is ridiculously easy and fast too.. I get 10,000 chars a month free, which is roughly 5 announcements a day. And if these are not enough can dip into the PayAsYouGo 100,000 for £20. Sent from my S7 Edge using Tapatalk Edited December 19, 2016 by TheFallenAngel Link to comment
Thanatar Posted December 19, 2016 Share Posted December 19, 2016 In the spirit of things to do once you get your system talking, the program I wrote to do the announcements has a couple of neat features: 1. It checks for "seasonal" replacement words / sounds and makes the appropriate replacements. I do this by placing "duplicate" sounds in numbered (1-12) directory folders. If the word / phrase exists in the current month's folder, a replacement is automatically made. 2. It allows for randomization by including multiple variances of the same word / phrase appended by -#. For example "Hello-1.mp3" says "Hello." "Hello-2.mp3" says "Hi". "Hello-3.mp3" says "Greetings". If numbered versions of a word or phrase exist in the audio folder (or month folder), one will be selected at random from those available. Here are some example voice announcement functions that I have set up: Announce exterior lighting turn on / off at sunrise and sunset (with time) Announce arrival of mail and mailbox accesses Announce visitor approaching Announce me / wife arriving if the other is home Welcome me / wife home when system disarmed Wish me / wife a happy birthday (with a song included). Announce count and times of doorbell rings when we were away Announce count, times, and callers of missed calls when we were away Announce completion of the dryer cycle Announce time and / or temperature when requested Announce all door / window opens and closings (ELK integration) Announce ELK ARM / DISARM / mode (ELK integration) Announce any ELK troubles (low battery, etc.) Announce reminder every 40 days to change the furnace filters (manually reset when I change them) Announce reminder to take out the trash on Tuesday nights Announce notification of any exterior motion lights triggering Announce reminders about Washington Capitals game and start times as leaving Announce score updates for Washington Capitals games Announce garage door openings and closings I never thought about the random announcements........ But you can place a variable in a network resource. I wrote a quick program to generate a random number and put it in a variable. Then placed that variable into the NR. So I tested it and it works!! Now I'm making 12 folders for the months so that I can have different sounds based on the months. Thanks for the great idea. I updated the set up guide if anyone wants to add this to theirs as well. Link to comment
mmoore99 Posted December 19, 2016 Share Posted December 19, 2016 I updated the set up guide if anyone wants to add this to theirs as well. Where is the "set up guide" that you spoke of? 1 Link to comment
Thanatar Posted December 19, 2016 Share Posted December 19, 2016 (edited) Where is the "set up guide" that you spoke of? Post #14 of this thread. Edited December 19, 2016 by Thanatar Link to comment
kevkmartin Posted December 20, 2016 Share Posted December 20, 2016 I never thought about the random announcements........ But you can place a variable in a network resource. I wrote a quick program to generate a random number and put it in a variable. Then placed that variable into the NR. So I tested it and it works!! Now I'm making 12 folders for the months so that I can have different sounds based on the months. Thanks for the great idea. I updated the set up guide if anyone wants to add this to theirs as well. The random number in network resource will work, but I found it too likely that I would lose track of files and end up sending invalid "versions". That's why I ended up using the same resource, and having the speak routine handle randomization and substitution. It is able to parse what (and how many) options are actually available, and then select from them. Link to comment
Teken Posted December 20, 2016 Share Posted December 20, 2016 Cold Weather - 35'C - [ID 033A][Parent 0335] If Module 'Climate' Temperature is -35 °C And Module 'Climate' Temperature <= -39 °C Then Resource 'Weather Voice - Cold Weather -35' Else - No Actions - (To add one, press 'Action') I really shouldn't be programming this late at night when I had one too many in my system. My fuzzy brain some how doesn't think this program looks right? Can someone who is sober, sane, and firing on all cylinders look over this simple program for me. This *proof of concept* program is supposed to monitor if the temperatures are from -35'C to -39'C and if so fire off the custom voice announcement I created. For what ever reason the operators don't look quite right. Link to comment
G W Posted December 20, 2016 Share Posted December 20, 2016 (edited) Cold Weather - 35'C - [ID 033A][Parent 0335]If Module 'Climate' Temperature is -35 °C And Module 'Climate' Temperature <= -39 °C Then Resource 'Weather Voice - Cold Weather -35' Else - No Actions - (To add one, press 'Action')I really shouldn't be programming this late at night when I had one too many in my system. My fuzzy brain some how doesn't think this program looks right? Can someone who is sober, sane, and firing on all cylinders look over this simple program for me. This *proof of concept* program is supposed to monitor if the temperatures are from -35'C to -39'C and if so fire off the custom voice announcement I created. For what ever reason the operators don't look quite right. Module 'Climate' Temperature <= -35 °C And Module 'Climate' Temperature >= -39 °C I'm Gary Funk and I wrote this message. Edited December 20, 2016 by Gary Funk Link to comment
jasont Posted December 20, 2016 Share Posted December 20, 2016 Santa was a day late, so my Sunday project got bumped to after work last night. Got everything setup and working! This is the flow of my sounds so far:Wired doors sensor > Raspberry Pi + PiFace Digital 2 > ISY > Raspberry Pi + AMP+ > ELK SP12-F flush-mount speaker Out of 30+ door tests last night, only one time did the sound take longer than one second to play. It was after a period of no activity, and it took 2-3 seconds to play. I haven't been able to recreate that delay, but I'll keep my ears open. Using the guide on post #14, the only difference I found was that some menus were slightly different on the latest OpenELEC that I downloaded. System>Settings>Web Server>Allow remote control>On System>Settings>Music>Playback>turn off Play next song were both System>Settings>Services>Web Server>Allow remote control>On System>Settings>Services>Music>Playback>turn off Play next song on mine. Manually testing the JSON requests from a web browser, one very rookie mistake I made was typing in http://ipAddress/ and then pasting one of the JSON examples from post #14. This resulted in a request that started with http://ipAddress//jsronrpc?... The extra / in front of the JSON request caused it to bomb out with a file not found, which made me focus on the end of the request where I had the filename specified. derp derp Thanatar, thanks for sharing this awesome solution for playing sounds!!! And thanks to so many others for the great ideas on how sounds can be used! Link to comment
Teken Posted December 20, 2016 Share Posted December 20, 2016 Thanks Gary will update the program code and see what happens. On a related note since the OpenElec has been turned off to play files in sequence. Is there a command that can over ride that parameter just one time in a ISY Program then revert back to playing only one vocal file? So this is what happen as I was testing out a few programs to see what the results were. When I linked a KPL button as the scene controller to the activate the vocal program. I had included two separate files and when the button was pressed *Julie US* initially stuttered, stopped, then played the second file? It quickly dawned on me the ISY Series Controller will not wait (pause) but will simply do what it was asked for which is fire off the network resources in sequence regardless of how long the sound file is. Obviously with red face in hand I added a wait in between the two NR's and *Julie US* did in fact play the NR files as expected. My use case is to load some music files into the RPI and have different genres: Dance, Rock, Country, Classical, R&B, Top 40, etc. The problem is I will literally have to add in a wait statement based on how long each song is before the next track is allowed to play. Does anyone have a more elegant way to accomplish this? I'm not home right now so can't test but another possibility was placing those music files in a folder and (IF) there is a JSON command that can over ride the Open Elec play once vs play all that would be the ideal solution. Does that exist? Link to comment
jasont Posted December 20, 2016 Share Posted December 20, 2016 My use case is to load some music files into the RPI and have different genres: Dance, Rock, Country, Classical, R&B, Top 40, etc. The problem is I will literally have to add in a wait statement based on how long each song is before the next track is allowed to play. Does anyone have a more elegant way to accomplish this? I'm not home right now so can't test but another possibility was placing those music files in a folder and (IF) there is a JSON command that can over ride the Open Elec play once vs play all that would be the ideal solution. Does that exist? Looks like the API supports Playlists. Maybe use Kodi directly to create a Playlist for each genre, and then create a ISY NR for each Playlist? Link to comment
Teken Posted December 20, 2016 Share Posted December 20, 2016 That would be great if someone has time to look up what that API call is and format it correctly into JSON NR that would be greatly appreciated. Really wish I was close to a computer instead of sitting here in the back seat watching snow fall. Link to comment
Thanatar Posted December 20, 2016 Share Posted December 20, 2016 That would be great if someone has time to look up what that API call is and format it correctly into JSON NR that would be greatly appreciated. Really wish I was close to a computer instead of sitting here in the back seat watching snow fall. Here you go. /jsonrpc?request={%22jsonrpc%22:%222.0%22,%22id%22:1,%22method%22:%22Player.Open%22,%22params%22:{%22item%22:{%22file%22:%22special://profile/playlists/music/Test.xsp%22},%22options%22:{%22repeat%22:%22all%22}}} You'll have to create a Smart Playlist first. http://kodi.wiki/view/Smart_playlists Mine was named test. The good news is it will continue to play even with play next turned off. Next you may need a Stop NR when you are done listening. /jsonrpc?request={"jsonrpc": "2.0", "method": "Player.Stop", "params": { "playerid": 1 }, "id": 1} Link to comment
ELA Posted February 1, 2017 Share Posted February 1, 2017 To those with this system working. Thank you for the details already posted. I have most everything figured out but I am stuck on something that seems as though it should be easy - yet I have struggled long enough and want to ask for your guidance. How do you get wav files into the music folder root? I have read about scanning them in using scan item to library. I tried that and it puts the file into an album rather than into the root of the music directory. I have read about needing tags in order for a wav file to be scanned in? I tried adding a tag with Mp3tag. I can see the tag is added yet I cannot scan the wav file into the music directory root. With the wav file loaded on a usb flash stick I can navigate to it from within Kodi and play the wav file fine from the usb stick. I can then scan it to the library and see it in an album. I can also play it using the keyboard/mouse from the album. Just cannot figure out how to get it into the music folder root so that the NR command example provided can then play it. (e.g. "storage/music/my.wav" Any help much appreciated. Ela Link to comment
Teken Posted February 1, 2017 Share Posted February 1, 2017 (edited) To those with this system working. Thank you for the details already posted. I have most everything figured out but I am stuck on something that seems as though it should be easy - yet I have struggled long enough and want to ask for your guidance. How do you get wav files into the music folder root? I have read about scanning them in using scan item to library. I tried that and it puts the file into an album rather than into the root of the music directory. I have read about needing tags in order for a wav file to be scanned in? I tried adding a tag with Mp3tag. I can see the tag is added yet I cannot scan the wav file into the music directory root. With the wav file loaded on a usb flash stick I can navigate to it from within Kodi and play the wav file fine from the usb stick. I can then scan it to the library and see it in an album. I can also play it using the keyboard/mouse from the album. Just cannot figure out how to get it into the music folder root so that the NR command example provided can then play it. (e.g. "storage/music/my.wav" Any help much appreciated. Ela Hello ELA, Once you enable SAMBA on the RPi (Open Elec) you simply go to my computer under the network and you should see the directory. Selecting the music folder will allow you to drag and drop the WAV files from what ever destination. Edited February 5, 2017 by Teken Link to comment
ELA Posted February 2, 2017 Share Posted February 2, 2017 Well that was sure much easier, thanks. I had enabled Samba as detailed but had no idea why. I googled it after you suggested it and all is well now. Link to comment
Scottmichaelj Posted February 3, 2017 Share Posted February 3, 2017 Hello ELA, Once you enable SAMBA on the RPi (Open Elec) you simply go to my computer under the network and you should see the directory. Selecting the music folder will allow you to drop and drag the WAV files from what ever destination. You should share your WAV files on a free service like Dropbox for people who want to do the same thing as you. Would save many a lot of time and help the community. 2 Link to comment
ELA Posted February 4, 2017 Share Posted February 4, 2017 OK, what I have done thus far so please check off anything I may have missed. - RPi: I enabled both analog and HDMI in the program and confirmed sound is indeed heard on the HDTV and USB Speaker. - Confirmed the IP address of the RPi which is 192.168.1.137 - The test NR looks like this simply copy and pasted from your example and for the sake of doing it I added an underscore to the test file called Entry_MS_Low_Battery.wav just in case the system wasn't liking the space between the words. - When I press TEST for the NR I receive the expected 200 which I have appended in this reply. - I've initiated the NR in the dummy program just in case there was a difference in behavior still no joy. /jsonrpc?request={%22jsonrpc%22:%222.0%22,%22id%22:%221%22,%22method%22:%22Player.Open%22,%22params%22:{%22item%22:{%22file%22:%22storage/music/Entry_MS_Low_Battery.wav%22}}} Hello Teken, May I ask you to elaborate on what fixed your issue where NR was not working from ISY ... If it was something other than remote settings in Kodi? I have just purchased the network module and this is the first use of same. In Kodi I have all the remote controls turned on. I can send from a web browser and Kodi responds and plays the wav file fine. Yet the ISY "test" for the NR responds just as you have posed here. It seems the NR command syntax is correct but for some reason the ISY is not sending the command out the HTTP. I have turned off the firewall and virus detection temporarily to see if they were holding it up but no luck. Since I have never used the NR module before I am wondering if there is some setup I may have missed. Link to comment
Teken Posted February 4, 2017 Share Posted February 4, 2017 (edited) Hello ELA,At the gym right now so will offer you a comprehensive *how to* link with lots of pictures to follow and troubleshooting steps upon my return. EDIT: I just sent you a PM with the *How To* which indicates the trouble shooting steps to follow. Please let me know if it solves your issues. If not all of us can go through the next steps to accomplish the same. Edited February 4, 2017 by Teken Link to comment
ELA Posted February 5, 2017 Share Posted February 5, 2017 Nice write up Teken, Very kind of you to save others the pain you must have had went through Damn those under_scores! I had added them as a test at the ISY NR end but forgot to change the file name in the music folder also. Link to comment
Teken Posted February 5, 2017 Share Posted February 5, 2017 Nice write up Teken, Very kind of you to save others the pain you must have had went through Damn those under_scores! I had added them as a test at the ISY NR end but forgot to change the file name in the music folder also. LOL! Glad the *How To* helped you track down the little evil under score. This high lights, one can not take what the terminal window says literally. Meaning just because it returned a successful 200 Ack it doesn't mean X will operate as expected. You noted in my *How To* the only proof in the puddling is when Julie U.S. speaks! Now, your next step is to take advantage of the fantastic *How To* from Blueman 2 in making the Amazon Echo *Alexa* offer you two way vocalization. This is what I am working on right now and its been simply fantastic . . . Please let me know if you are needing any help in this area also . . . Best Regards Link to comment
ELA Posted March 12, 2017 Share Posted March 12, 2017 A follow up note: for anyone who might use a Rpi3 with built-in Wifi on a project such as this: The wireless turns off (by default) every so often as part of Power Management in Openelec 6.0.3 ( Iinux kernal 4.1.18) and that was somewhat frustrating. Resulted in miss-fires of network resources from ISY to RPi. Ping times were excessive - even before timeouts occurred. Upgrading to Openelec 7.0.1 (Linux kernal 4.4.41) appears to have corrected this. 1 Link to comment
Scottmichaelj Posted March 28, 2017 Share Posted March 28, 2017 I use voice announcements via my Elk system. Expensive if that's all you need, but if you have an Elk already it may be an option. Are you sending custom sounds/recordings stored on a an always on PC/NAS using the ISY NR to Elk speaker? Link to comment
MWareman Posted March 28, 2017 Share Posted March 28, 2017 (edited) Are you sending custom sounds/recordings stored on a an always on PC/NAS using the ISY NR to Elk speaker?Not currently. I'm using concatenations of built in phrases that Elk supports. It works for the most part. Edited March 28, 2017 by MWareman Link to comment
jasont Posted March 28, 2017 Share Posted March 28, 2017 I recently installed an ELK system (thanks Scottmichaelj!), which replaced the Raspberry Pi/AMP+ solution that I've been using. I only have one in-wall speaker, so I disconnected the Pi/AMP+ and have the ELK connected. This way I get all ELK announcements/prompts/etc directly. In terms of crispness, the ELK lady sounds like she's chewing on cotton balls when she speaks (compared to the WAV files I've been using on the Pi/AMP+). I've tried both the ELK-73 Echo and ELK-SP12F Flush Mount speakers, and there wasn't any real difference in quality. Been considering adding the ELK components that let you use your own WAV files, but seems kind of spendy for what you get. Oh well. lol Link to comment
Recommended Posts