Home › Forums › OpenEars plugins › rubymotion
Tagged: rubymotion voicedata neatspeech
- This topic has 4 replies, 4 voices, and was last updated 9 years, 3 months ago by vaunteandy.
April 10, 2013 at 7:32 pm #1016907fim32Participant
just getting started, trying to get the neatspeech going before paying for the license.
i got openears running through rubymotion, so I thought it would be simple to add the neatspeech plugin! I’ve got all the frameworks in the right places, but dang if i can figure out where its looking for the VoiceData dir, any thoughts?April 10, 2013 at 7:38 pm #1016908Halle WinklerPolitepix
Somehow or another it needs to find the contents (the individual files, that is) of VoiceData at the root of mainBundle. I’m not familiar with rubymotion but a frequent source of issues in this kind of situation is with Xcode creating a subfolder in mainBundle rather than copying the files directly to root. You should be able to verify that the files are in the right place by opening up the app product package and just looking in the bundle to see if the files are there and are where they ought to be.
However, I have never tested with rubymotion and don’t actively support it, so I can’t guarantee that the licensed version works with it. If you want to buy a license, maybe consider sending me over a sample app with a test bundle id first so that I can check out whether you’ll be able to make use of a license. You can contact me about this via the contact form when you’re ready.April 11, 2013 at 7:13 am #1016923fim32Participant
In case anyone else is trying to do this, I got it to work!
First, the libs need the VoiceData files NOT in nested structure, I copied all the individual files into the Resources folder. When the app builds, those files will all end up in the root of the app. As a side, it makes the directory structure in the app kind of ugly, but anyways.
Secondly, probably due to the way rubymotion tries to figure out what to import, I couldn’t use the 2 frameworks separately. Also, the number of header files made gen_bridge_metadata (the utiltiy for osx to figure out what’s in a framework) choke.
So, I reformed the framework, with just the 2 libraries (OpenEars, NeatSpeech), all the Header files from NeatSpeech (only 2) and whatever Headers I thought were important from OpenEars. Obviously, I guessed the latter, but since I only want playback I picked: FliteController.h and FliteVoice.h.
Then, in the Rakefile:
app.vendor_project(‘vendor/OpenEars/OpenEarsNeatSpeech.framework’, :static, :products => [‘OpenEars’, ‘NeatSpeechDemo’], :headers_dir => ‘Headers’)
From there, it’s more simple. The voice you want to add gets added as another separate framework:
app.vendor_project(‘vendor/OpenEars/Voices/Demo/Emma.framework’, :static, :products => [‘Emma’], :headers_dir => ‘Headers’)
And, then, the calls for the framework look more like Ruby:
@fc = FliteController.alloc.init
@voice = Emma.alloc.initWithPitch(0.0, speed:0.0, transform:0.0)
@fc.sayWithNeatSpeech(“I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone.”, withVoice:@voice)
Now, to see if it will fit my needs!May 10, 2013 at 1:34 am #1017187brucepParticipant
I’m trying to use OpenEars in a RubyMotion project too. In my case I don’t need NeatSpeach, just OpenEars. I’m not sure which files to add to my vendor folder though. When I unpack the OpenEars download there’s a folder at the root called Framework. Should I move that whole folder into my vendor directory or just Framework/OpenEars.framework? If I do the latter then where should I put the other files and folders that are next to OpenEars.framework such as cmu07a.dic etc.
I can’t find any .a files in the OpenEars distribution, apparently RubyMotion expects them.
Thanks in advance for any guidance you guys can offer.December 13, 2013 at 9:05 pm #1019164vaunteandyParticipant
+1 here. How do you go about using Open Ears with Rubymotion. I am getting this error:
This is what I put in my Rakefile:
app.vendor_project("vendor/OpenEars",:xcode,:xcodeproj => "OpenEars/OpenEars.xcodeproj")
This is the error message:
ERROR! Building vendor project</code>vendor/OpenEars' failed to create at least one .a' library.
- You must be logged in to reply to this topic.