在.NET中有两个类似的名称空间和程序集用于语音识别.我试图了解这些差异以及何时适合使用其中一种.
从程序集System.Speech(在System.Speech.dll中)有System.Speech.Recognition.System.Speech.dll是.NET Framework类库3.0及更高版本中的核心DLL
还有Microsoft.Speech.Recognition来自程序集Microsoft.Speech(在microsoft.speech.dll中).Microsoft.Speech.dll是UCMA 2.0 SDK的一部分
我发现文档令人困惑,我有以下问题:
System.Speech.Recognition表示它适用于"Windows桌面语音技术",这是否意味着它不能用于服务器操作系统或不能用于大规模应用程序?
UCMA 2.0 Speech SDK(http://msdn.microsoft.com/en-us/library/dd266409%28v=office.13%29.aspx)表示它需要Microsoft Office Communications Server 2007 R2作为先决条件.但是,我在会议和会议上被告知,如果我不需要存在和工作流等OCS功能,我可以使用没有OCS的UCMA 2.0 Speech API.这是真的?
如果我正在为服务器应用程序构建一个简单的识别应用程序(假设我想自动转录语音邮件)而且我不需要OCS的功能,那么两个API之间有什么区别?
你如何使用.NET语音命名空间类将WAV文件中的音频转换为文本形式,我可以在屏幕上显示或保存到文件?
我正在寻找一些教程样本.
在这里找到了代码示例.但是当我尝试它时它给出了不正确的结果.下面是我采用的vb代码示例.(其实我不介意lang,只要它的vb/c#...).它没有给我正确的结果.我假设如果我们把正确的语法 - 即我们在录音中所期望的单词 - 我们应该得到它的文本输出.首先,我尝试了调用中的示例单词.它有时只打印那个(一个)字而不是其他字.然后我尝试了一些我们在录音中完全没有想到的词......不幸的是它也打印出来...... :(
Imports System
Imports System.Speech.Recognition
Public Class Form1
Dim WithEvents sre As SpeechRecognitionEngine
Private Sub btnLiterate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLiterate.Click
If TextBox1.Text.Trim.Length = 0 Then Exit Sub
sre.SetInputToWaveFile(TextBox1.Text)
Dim r As RecognitionResult
r = sre.Recognize()
If r Is Nothing Then
TextBox2.Text = "Could not fetch result"
Return
End If
TextBox2.Text = r.Text
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) …Run Code Online (Sandbox Code Playgroud) 我试图使用与此相关的语音识别: 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)