I am going to create a Text to speech converter, which can be executed in both Windows, and Linux based systems. Can someone please help me answer the following questions;
What language should i use; Java, C++ or any other?
The program i am going to create should be able to read large chunks of data.
There should be good sound quality.
What are the libraries available to achieve this?
Please share your experiences as well.
Use the language you're most comfortable with. I learned the hard way when I tried to re-code my raytracer in C++, coming from a Python background. It took me weeks to get it to function...
Basically, you'll get frustrated by the nuances of a new language before you can get to coding something, so I suggest you stick with what you know.
That's independent of the language. Just makes sure to read the data in chunks (like 2048 kilobytes at a time). Reading a big file to RAM is not a great idea, as you can't be sure your end user has enough RAM (audio files can get BIG).
This is trivial. I can't help you program good sound quality. That's up to you.
There exist a few implementations of TTS for Linux, so that's all I can recommend. Look at Festival, as it is one of the ones you can actually understand.
Long time ago i had that same idea. I think it is not too complicated and can be done. This is how i would do it:
1- I would use Java, because it is platform independent.
2- If you are going to create an standalone application, it will be the local computer that will do the processing an not an application server, as in the case of web apps. Also i suppose that your program, will be used only by one user at a time. I think you will not have big issues with the amount data to process, if u implement some buffering mechanism.
3- The quality of the sound will depend in various factors such as: noise when recording,format, speed of the sound... Notice that many text to speech applications that exist on the web, the sound quality is ok, but you will never get the feeling that it is a real person, who is reading. (I recommend you a female voice, it sounds better).
4- Regarding to the libraries and another gadgets, this is what i think you might need:
-Java Standard Development Kit(To be able to work with java)
-A good IDE: There a many out there you can get for free. My favourite is eclipse but if you are a beginer with java, you might like to start with netbeans many people say it is more intuitive for learning.
-JLayer Mp3 library This will help you play the sounds in java.
-javax.swing Is a java library that is included in the development kit and allows you to create rich graphical user interfaces. Also if you are new to swing, i would recommend you a great swing IDE, called JFormDesigner, have a look at it, im sure it will speed your development alot(It is a great tool).
I hope my answers can give you some tips.
Update
I think it would be correct to mention also, that the only minimum requirement the users of your app will have in order to run the app is:
JRE(Java runtime enviroment)
This project of text to speech can be made using computer generated voice
so no problem of storing a database for each word and its pronunciation.
Just use the language in which u feel master to urself and apply the concept.....
I do not know anything about text to speech except that it's not easy. That being said, I suggest you stick with the language you are most familiar with. I'm sure Java and C can do it.
Related
I have several VB programs that I wrote a few years ago in school. Is there any way possible to convert those programs to Java? Or would that it be easier to just rewrite it from scratch? My goal is to create an Android app that combines at least two of the programs into one functional app. This is purely a nonprofit endeavor; I'm a full time firefighter and am looking to put a free tool in the hands of my guys and other firemen who might want to use it.
I've been unable to locate the source code for the programs and have searched for an answer but haven't been able to find a definitive answer as most answers cover the source, not the compiled result. I've downloaded a couple supposed VB decompilers to see the results, but, in order to see the 'full' results, all the ones I've used require purchasing a 'pro' version. I have no problem paying for such a version, but I'd like to know if it's going to work properly before I do.
It would definitely be faster to rewrite them than it would be to devise a way of converting a VB program into Java code. Not only are the languages quite dissimilar, but VB's UI model is nothing like Android's, so it would likely be impossible (or at least impractical) to translate the UI code automatically.
I have been suffering from severe RSI on my hands and wrists and as a full-time Java programmer, and this is becoming a risk to my livelihood. I use Dragon Dictate for the Mac, which does quite a good job of writing English, but speaking to it in Java is very cumbersome due to the cryptic nature of programming languages. Navigating the code is also tricky and can be rather exhausting.
I currently use the Eclipse IDE but haven't found any plug-ins to help in this regard. from what I have read in other posts in this forum (for example, Voice recognition software for developers, and Can i write sql using speech recognition), the approach I should take should be to give Dragon Dictate a custom vocabulary consisting of Java keywords, and to create a number of custom voice triggered commands that correspond to existing shortcut keys (e.g., "navigate to superclass") or sequences of actions that I perform on a routine basis using AppleScript ( e.g., “commit to SVN").
I could just go ahead and implement this (with some difficulty due to physical limitations) but cant help feeling that I would be reinventing the wheel. I mean, surely RSI must be a relatively common problem among programmers, and I would have expected that there might be a plug-in or even, an IDE, that facilitates coding by voice and also associated tasks (for example, debugging the program by stepping through it etc.) I just don't seem to find this anywhere.
If anybody has any suggestions about the Java IDE that I could use (I don't need to use Eclipse obviously) I'll be very interested to hear them.
Alternatively, if anybody uses Dragon Dictate for the Mac and has a command set for Eclipse or another Java IDE that they are willing to share with me, that would also be a great help.
Thanks, Ixent
http://voicecode.io
I recently released VoiceCode, a coding-by-voice solution I created to solve my own RSI issues.
I use it mostly for coding in Sublime Text and Xcode, using the terminal, and other general computer usage. The great thing about this solution is that all the commands can be chained into "command phrases" so you don't have to pause between every individual command like you do with other voice command solutions.
It has builtin support for all standard variable-name formats (snake case, camel case, etc), has builtin commands for every permutation of keyboard shortcuts (ie command-shift-5, command-option-shift-T, and so on), has cursor movement commands, app switching commands, window switching commands, text-selection commands, commands for symbol combos like "=>", "||", ">=", etc, and tons more. Plus it is very easy to add your own custom commands as well.
I work with clients who have DNS. I have created for them scripts for their own work environment. I have experience with DNS and the fustrations which it can cause to navigate.
You are probably right, there might be others like you. But how do you bring them together. It might be best to start a user community. Depending on your contacts, you probably could get funding for leading such a community.
How to Start a Support Group
American Self-Help Group Clearinghouse
There is another article you might be interested in reading.
Good luck
Look at this https://polaris-a.com
"Programmers of the 21st century will know Polaris as a name for a Eclipse IDE voice recognition plugin. It can quickly turn your spoken words into actions.
With Polaris you have ability to control Eclipse IDE main functionality, without the need to use a mouse or keyboard."
I want to write an app to rename sort and organize my music library (mp3's, wav's, flac's). I wanted to take a portion of the song, say the first minutes, and compare that to a database and then retrieve the song name and tag information. I have heard that you can do this with last.fm but a look through their api info didn't help. My question is, what is this called so i can google it better? nothing I am trying is helping much. This would be similar to the shazam android app. My preferred language would be Java, so I can run it on a few operating systems easier, but that might be subject to change depending on how I can do it.
Okay I don't know if you need a practical or a technical answer.
Practically the best music database out there is MusicBrainz.
They have developed a fingerprinting technology that calculats what they I think call PUIDs.
The database is Huge (its the biggest out there), and there are tools available. And its free.
Picard Tagger is a cross platform tool for exactly what you are trying to do.
Technically there are a lot of different approaches. Especially in the Audio segment there are really a lot of methods. Most rely on frequency spectrum analysis. But also take into account Rythm, and developement of certain characteristics over time and of course trivial parameters like length etc.
Searching for audio fingerprinting should give you a lot of results.
Have a look at this paper which details how the Shazam algorithm works.
I highly recommend the Echo Nest API for this sort of task. Their clientele are exactly app builders like you. It has a large database, is easy to use, and can retrieve the song information you want.
did you consider atunes?
the source code is at source forge . can identify the song, written in Java.
good luck.
Here is a fairly easy to understand article about this:
http://www.soyoucode.com/2011/how-does-shazam-recognize-song
I have a database I have created in Delphi that’s still in the testing phase
I found it easy to give access to my database through Java in the form of a *.dll
but this is not just a standard database (its very cutting edge with Nodes).
It’s taken me a lot of learning to get to this point. I very much appreciate the help and thanks of this forum and the replies I have received to my questions to get me hear.
What it very exciting at the moment is Android devices and to write in java
But I know nearly nothing about Java. The developers are like five times more busy than Delphi. The Google apps web page is averaging about 40 hits a day and thats only a part of java.
I want to make it accessible to the Maven approach to using databases that I have no documentation on how to do this yet.
I know I have ShortIntegers, LongIntegers, I'm not sure about strings that originate as ANSCI but can be UTRF-8 and other things. Do I have double numbers and do I have date records.
Do I have any other type data types in java
Can any one enlighten me please.
Java for dummies
If you are Delphi programmer then you you know how to program: you know loops, routines, variables, objects etc. Java differs from Delphi in many things, but it is hard to say what will make problems to you. You must give it a try.
Install JDK
Read some good Java book. You can find some good free books such as older edition of Thinking in Java
Fire good text editor. You can start with Eclipse or Netbeans, but there are many simple editors with Java syntax highlighting that may be better for Java novice
Start writing programs in Java.
This is more a question of pros/cons between PHP and JAVA.
Iv been doing research, and iv narrowed it down to those two.
And in consideration, id like to go into mobile app dev...So thats +1 for Java.
Time taken to learn the language is not an issue...Just would like to know which is the most effective between the two languages mentioned above.
And on a slight note. Can Javascript work with Java? And what is the real advantage of that?
All answers are appreciated, thanks in advance.
I'm sorry, but PHP and Java are not the only choices. Ruby on Rails and Python's Django framework are both excellent tools for web development. While I haven't used it, Groovy's Grails framework is also very highly reviewed (largely by ex Java programmers). In certain (admittedly obscure) circumstances it's even advisable to do something off the wall like write a CGI program in C. It all depends on what you're trying to do.
Mobile app dev shouldn't influence your choice here, because no matter what web framework you're working with a mobile app is a whole new ball of wax.
So, here's the deal: asking people to compare PHP and Java really won't get you any meaningful answers -- you don't have the background necessary to understand what we'll say. You really need to figure out what you're trying to do before you choose your tool. It's like saying "I'm thinking about building a house, should I use a screwdriver or a hammer?" Here is what I would advise:
Go learn to program. Pretty much any language will do, but I'd suggest something nice like Python or Ruby. Spend a few months getting comfortable with programming first.
Pick a project. Make it something simple. When you know what your project is, pick a tool to use to complete your project. This may involve asking another SO question.
Rinse and repeat. Complete many projects. Once you've finished 5 or 10 web projects you'll be in a position to compare different tools. The more tools you use, the better. I'd suggest you do one in Ruby on Rails, one in PHP, one in Django (a python framework), and maybe even one in Java with JSP.
Once you've got that base of experience come back and ask this question again. You'll actually be equipped to understand the answers. Of course, once you've got that experience you won't need to ask the question because you'll already know the answer.
The one you know.
Some feedback:
Mobile app dev is not necessarily just web development.
Javascript is the language of choice on the web browser and works with PHP, Java, etc. on the server.
In general, one language is not more effective than another.
Seriously, judging by your post, I would advise you to start learning PHP and Javascript.
You already have a web browser so you can start writing javascript now.
As for PHP just install XAMPP from http://www.apachefriends.org/en/xampp.html and after a double click you'll be ready for web development.
After learning what its all about you'll be able to then check out Java and see if it is more effective in what you are trying to do.
Your question really indicate you need to learn alot about web development and programming in general, so I could answer your question but.. I'd recomend you go read up a little.
And in consideration, id like to go
into mobile app dev...So thats +1 for
Java.
How is that +1 for Java? We're talking about server-side languages.. you're not running your server off a phone are you? Sure, you can use Java to build apps in addition to running your website, but that's a different story.
Time taken to learn the language is
not an issue...Just would like to know
which is the most profitable at the
end of all the training.
Neither language will make your site more profitable, but you may be in higher demand with different companies depending on what you know.
And on a slight note. Can Javascript
work with Java? And what is the real
advantage of that?
Well... yes, but that's almost a nonsensical question. You use Java or PHP to produce the HTML that gets sent to the client, and then your JavaScript manipulates that. It's completely unrelated to what language you use server-side.
#comment: I can't really say which is more worth learning. I suppose Java is more versatile in that it has more applications outside the web. PHP is supported by more web-servers though (AFAIK), so you won't have trouble if you need to work on a different server.
I can't fairly recommend one over the other though. I've only used PHP for web, and Java for non-web. I like PHP because it's easy to pickup, easy to use, and all sorts of stuff is built into the language without any includes or anything. Has a big community, so there's lots of scripts you can download. One might argue that it's also a mess of a language, but as long as you aren't all uppity about that sort of thing, it's not really a problem. Java OTH... I don't know. I'm not a Java keener, that's all I'll say :)
Most of the answers here should be able to direct you towards your answer though I would just like to say if you are going to learn a programming language to make Web Apps learn Java, not because this will be the best tool for the job, each job is different, but knowing a full fledged language you will be able to quickly adapt to other languages.
You don't learn a language, you learn the concepts behind programming, then apply them to different languages.
I think you need to outline the context of your question. For example, if you are looking to get a job in IT, then the language that is most asked for in job ads is the one you want. If on the other hand, you have an application in mind that you would like to write, then you need to tell people (without giving away the details) what type of application it is so that they can tell you the most suitable languages/APIs to for that area.
But remember this - there is no such thing as a super programming language that is the best for everything. Each language is suitable for a range of tasks in a range of contexts, and is usually awful for everything else. Without the context of where the language will be used, no-one can tell you which is better.
Stop trying to kill two birds with one stone. There are different tools for different tasks. You can write mobile apps with Java but you can't write web apps with it. You'll have to use a server-side programming language such as PHP, Ruby on Rails, Django (Python), etc.