java 使用哪种语言编写语音识别软件?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/664984/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-29 13:18:37  来源:igfitidea点击:

Which language to use to write a Speech Recognition software?

javaspeech-to-text

提问by Deepak Singh Rawat

I want to write a basic Speech Recognition software which can convert speech to text. I wanted to know which language is most suited to write such a software. Is Java suited for this job?

我想编写一个基本的语音识别软件,可以将语音转换为文本。我想知道哪种语言最适合编写这样的软件。Java 适合这份工作吗?

edit : Thank you all for the responses. I want to build a tool for a college project. I don't want to write it from scratch. Just want to demo the power of Speech Recognition. The tool should just write whatever a user says on a text editor like notepad. It need not be too accurate. I just want to experiment and learn the various algorithms behind Speech Recognition as I find this field very interesting.

编辑:谢谢大家的答复。我想为大学项目构建一个工具。我不想从头开始写。只想演示语音识别的强大功能。该工具应该只写用户在记事本等文本编辑器上说的任何内容。它不必太准确。我只是想尝试和学习语音识别背后的各种算法,因为我发现这个领域非常有趣。

Thank you, Deepak

谢谢你,迪帕克

采纳答案by paxdiablo

Java may be suited for an interface to it but speech recognition requires seriously raw grunt. I'd be choosing a compiled close-to-the-metal language like C for the actual recognition engine.

Java 可能适合它的接口,但语音识别需要非常原始的咕噜声。对于实际的识别引擎,我会选择像 C 这样的编译接近金属的语言。

This is not something to be undertaken lightly, by the way. There's an awful lot of theory you'll need to learn even before you begin. Myself, I would license one of the existing engines if possible, and concentrate on building a decent product around it.

顺便说一下,这不是一件可以掉以轻心的事情。在你开始之前,你需要学习很多理论。我自己,如果可能的话,我会许可一个现有的引擎,并专注于围绕它构建一个像样的产品。

That's if your intent is to build a product. If you just want to experiment, by all means write your own. It'll be fun (up to a point :-).

那就是如果您的意图是构建产品。如果你只是想尝试,一定要自己写。这会很有趣(在一定程度上:-)。

回答by TofuBeer

My students are using Sphinx. It is written in Java (a port from C++ I believe). It might not be suitable for what you want (I think you would need to create your own dictionary) but worth checking out.

我的学生正在使用Sphinx。它是用 Java 编写的(我相信是 C++ 的一个端口)。它可能不适合您想要的东西(我认为您需要创建自己的字典)但值得一试。

回答by Neil Coffey

I agree with Pax that this is potentially quite a big project, and that the most practical solution is probably to just licence an existing engine.

我同意 Pax 的观点,这可能是一个相当大的项目,最实用的解决方案可能是仅许可现有引擎。

If the scope of what you want to do is just distinguishbetween a few previously known possible utterances, it's a significantly smaller project, but still considerable.

如果你想要做的范围只是区分一些以前已知的可能的话语,这是一个小得多的项目,但仍然相当可观。

But... if you decide you really really really do want to start developing your own, I can't see a reason not to use Java. The idea that "C is faster" is largely a myth (or based on out-of-date information).

但是...如果你决定你真的真的很想开始开发你自己的,我看不出有什么理由不使用 Java。“C 更快”的想法在很大程度上是一个神话(或基于过时的信息)。

回答by MarkusQ

A agree with almost everything Pax said, so I'm going to be contrarian and argue for the opposite. The conventional wisdom is that speech recognition "requires seriously raw grunt" and it may be because this is true.

同意 Pax 所说的几乎所有内容,所以我将逆势而为,并为相反的观点争论。传统观点认为语音识别“需要非常原始的咕噜声”,这可能是因为这是真的。

But it also may be that everyone believes that because that's how it's always been done. Arguing from the fact that the human brain doesn'tdo huge amounts of brute force data churning to recognize speech, I would suggest that there exist clever feature extraction algorithms to do the job muchmore efficiently.

但也可能是每个人都相信这一点,因为它一直都是这样做的。一个事实,即人的大脑争论并不做蛮力数据搅动以识别语音的巨额资金,我建议存在巧妙的特征提取算法做的工作很多更有效。

If that is the case, and if you seek to find such an algorithm, a higher level language may be better suited to the task. Anything you loose in efficiency you'll make up and more in algorithmic expressiveness.

如果是这种情况,并且如果您寻求找到这样的算法,则更高级别的语言可能更适合该任务。任何你在效率上的损失,你都会弥补,更多的算法表现力。

That said, he's probably right.

也就是说,他可能是对的。

回答by Edison Gustavo Muenz

I think that java can be a good option, it all depends on how will you receive the input. There are some nice librarys for sounds in Java.

我认为 java 可能是一个不错的选择,这完全取决于您将如何接收输入。Java 中有一些不错的声音库。

The language is not going to be the problem because it will be a matter of recognizing the patterns. If java is the language you are most familiar with, I would use it.

语言不会成为问题,因为这将是识别模式的问题。如果 Java 是您最熟悉的语言,我会使用它。

回答by Bombe

Java is turing completeso it can handle every programming job. Whether you wantto do something in Java is entirely up to you.

Java 是图灵完备的,因此它可以处理每项编程工作。您是否用 Java 做某事完全取决于您。

回答by miceuz

We had moderate success with Shynx framework written in Java, but the real hard work lies in understanding algorithms and math involved in the area and then in fine tuning engine to your particular needs.

我们使用 Java 编写的 Shynx 框架取得了一定的成功,但真正的困难在于理解该领域涉及的算法和数学,然后根据您的特定需求对引擎进行微调。