我正在开展一个大学项目,我正在使用语音识别.目前我正在Windows 7上开发它,我正在使用与.net一起提供的system.speech API包,我正在C#上进行.
我面临的问题是听写识别不够准确.然后每当我启动应用程序时,桌面语音识别都会自动启动.这对我来说是一个很大的麻烦.正如我所说的话已经不够清楚,并且冲突的识别被解释为正在执行诸如应用程序切换最小化之类的命令和动作.
这是我的应用程序的一个关键部分,我恳请你为我提出任何好的语音API,除了这个微软的错误.即使它只能理解简单的听写语法也会很好.
是否有任何众所周知的C或Java或PHP建立的框架来进行语音识别应用程序?麦克风音频输入,它将识别英语单词.比如伪代码:
Speech s = new Speech();
s.input(micStream);
result = s.recognise("Hello");
if (result) { printf("Matched hello"); } else { printf("No match found"); }
Run Code Online (Sandbox Code Playgroud)
跟进:

添加库
复制并粘贴代码:
a)放在某处的xml文件,可以从代码中加载:
https://gist.github.com/2551321
b)使用这个:
package edu.cmu.sphinx.demo.hellowrld;
import edu.cmu.sphinx.frontend.util.Microphone;
import edu.cmu.sphinx.recognizer.Recognizer;
import edu.cmu.sphinx.result.Result;
import edu.cmu.sphinx.util.props.ConfigurationManager;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import models.Tts;
public class Speech {
public static void main(String[] args) {
ConfigurationManager cm;
if (args.length > 0) {
cm = new ConfigurationManager(args[0]);
} else {
///tmp/helloworld.config.xml
cm = new ConfigurationManager(Speech.class.getResource("speech.config.xml"));
}
Recognizer …Run Code Online (Sandbox Code Playgroud)是否有针对桌面或浏览器环境的已知API的完整列表?
speech-recognition text-to-speech speech-synthesis speech-to-text
作为我正在研究的概念证明的一部分,我需要自动转录一些简短的MP3.我目前正在研究云解决方案或Web API服务,将MP3作为简单的HTTP请求发送并接收转录.
我在这里找到的唯一免费/开源解决方案,但演示似乎不起作用(至少不是我需要转录的文件).我已经为呼叫中心找到了一些企业解决方案,但到目前为止我无法简单地集成到一个项目中.
是否有基于网络的语音识别服务?一个能够滤除小噪音的人将是一个加号.
如何在MS Speech中使用ARPA文件?Microsoft Speech Platform 11识别器的文档意味着可以从ARPA文件编译语法.
我能够编译一个ARPA文件 - 例如,Microsoft提供的一个小例子- 使用以下命令行:
CompileGrammar.exe -In stock.arpa -InFormat ARPA
Run Code Online (Sandbox Code Playgroud)
我可以在以下测试中使用生成的CFG文件:
using Microsoft.Speech.Recognition;
// ...
using (var engine = new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
engine.LoadGrammar(new Grammar("stock.cfg"));
var result = engine.EmulateRecognize("will stock go up");
Assert.That(result, Is.Not.Null);
}
Run Code Online (Sandbox Code Playgroud)
此测试通过,但请注意它使用EmulateRecognize().当我切换到使用实际的音频文件时,如下所示:
using (var engine = new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
engine.LoadGrammar(new Grammar("stock.cfg"));
engine.SetInputToWaveFile("go-up.wav");
var result = engine.Recognize();
}
Run Code Online (Sandbox Code Playgroud)
结果始终为null并且测试失败.
微软非常清楚地表明它得到了支持,但即便是非常简单的例子也似乎不起作用.我究竟做错了什么?
我正在尝试制作一个使用Microsoft语音识别API(使用Kinect)的C#程序,但我很难开始使用.我有使用声明
using Microsoft.Speech.AudioFormat;
using Microsoft.Speech.Recognition;
Run Code Online (Sandbox Code Playgroud)
但它给我的错误是"类型或名称空间名称'Speech'在命名空间'Microsoft'中不存在.你错过了程序集引用吗?"
有谁知道要添加什么?System.Speech没有做到这一点.
所以我有一个使用system.speech识别引擎实现语音识别的Windows服务.当我启动服务时,我的语音识别代码运行良好,但没有语音事件识别出来.奇怪的是,如果我运行完全相同的代码,但在控制台或WPF应用程序中,语音识别的事件触发工作正常.
我已经在我的服务进程中附加了一个调试器,以检查幕后发生了什么.似乎语音识别引擎正确加载语法,将其模式设置为连续收听,并正确设置语音识别事件.没有异常被抛出,所以我不太清楚这里有什么问题.有任何想法吗?
我有一个客户端需要一个能识别口头命令的Android应用程序.根据我的理解,内置语音到文本功能实际上将数据发送到Google的服务器,然后发送回文本翻译.这是一个主要问题,因为语音数据非常敏感(除非数据在发送到Google或从Google发送时加密 - 但我怀疑它是加密的).
我能想到两个选项.首先是在Android上转换语音到文本,虽然这似乎是一个非常昂贵的操作.第二种可能性是让本地服务器为我转换数据(我可以加密语音数据和转发时的语音数据).这是CMU Sphinx能够实现的吗?值得注意的是,我也可以访问Asterisk服务器,这可能有助于此(我不知道).
实际上,应该只有大约200个单词需要被识别.我更喜欢开源/免费软件解决方案,但我也对商业解决方案(可能是FlexT9)持开放态度.理想情况下,我可以将音频流发送到某处,获取一个String作为文本,然后我可以使用String解析并执行其他操作.
我过去没有做太多的机器人或任何语音识别开发,所以我希望有人能够至少指出我正确的方向.谢谢!
我试图使用与此相关的语音识别: C#语音识别 - 这是用户所说的吗?
但系统无法找到它的组件.
所以我正在尝试 C# 的语音识别,我正在使用 System.Speech.Recognition,并且,我在互联网上搜索,尝试了一些基本语音识别的几段代码,我能找到的最好的就是这个:
using System;
using System.Text;
using System.Windows.Forms;
using System.Speech.Recognition;
namespace SpeechRecognition
{
public partial class MainForm : Form
{
SpeechRecognitionEngine recognitionEngine;
public MainForm()
{
InitializeComponent();
Initialize();
}
private void Initialize()
{
recognitionEngine = new SpeechRecognitionEngine();
recognitionEngine.SetInputToDefaultAudioDevice();
recognitionEngine.SpeechRecognized += (s, args) =>
{
foreach (RecognizedWordUnit word in args.Result.Words)
{
// You can change the minimun confidence level here
if (word.Confidence > 0.8f)
freeTextBox.Text += word.Text + " ";
}
freeTextBox.Text += Environment.NewLine;
};
}
private void startButton_Click(object sender, …Run Code Online (Sandbox Code Playgroud)