Каковы хорошие способы улучшить код распознавания речи/голоса на C#?C#

Место общения программистов C#
Ответить
Anonymous
 Каковы хорошие способы улучшить код распознавания речи/голоса на C#?

Сообщение Anonymous »

Я пытаюсь разработать программу на C#, способную читать голос человека, точно определять, что он говорит, и, в конечном итоге, определять, кто говорит. Излишне говорить, что я нахожусь в самом начале этого процесса и хотел бы знать, есть ли хорошие способы повысить точность распознавания речи? Для этого прототипа я использовал встроенный пакет nuget System.Speech, и, честно говоря, он ужасно распознает то, что говорится. Ниже я опубликую часть имеющегося у меня кода (я знаю, что он все еще очень плох):

Код: Выделить всё

public partial class Form1 : Form
{
private SpeechRecognitionEngine voiceInput;

public Form1()
{
InitializeComponent();

voiceInput = new SpeechRecognitionEngine();

//load the built-in dictation grammar for free-form speech
voiceInput.LoadGrammar(new DictationGrammar());

//default microphone as input
voiceInput.SetInputToDefaultAudioDevice();

voiceInput.SpeechRecognized += Voice_Recognized;
voiceInput.SpeechHypothesized += Voice_Hypothesized;
}

//when speech recognized
private void Voice_Recognized(object sender, SpeechRecognizedEventArgs e)
{
//append text to the textbox
textBox1.AppendText(e.Result.Text + Environment.NewLine);
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
}

private void Voice_Hypothesized(object sender, SpeechHypothesizedEventArgs e)
{
//show temporary text while speaking
textBox1.Text = e.Result.Text;
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
}

//start button
private void button1_Click(object sender, EventArgs e)
{
try
{
voiceInput.RecognizeAsync(RecognizeMode.Multiple);
button1.Enabled = false; //disabled while listening
}
catch (InvalidOperationException)
{
MessageBox.Show("Speech recognition is already running.");
}
}

//stop button
private void button2_Click(object sender, EventArgs e)
{
try
{
voiceInput.RecognizeAsyncStop();
button1.Enabled = true;
}
catch (InvalidOperationException)
{
MessageBox.Show("Speech recognition is not currently running.");
}
}

//clear form
protected override void OnFormClosing(FormClosingEventArgs e)
{
voiceInput.RecognizeAsyncCancel();
voiceInput.Dispose();
base.OnFormClosing(e);
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
Пожалуйста, дайте мне знать, есть ли хорошие способы создания функционального приложения для распознавания речи на основе встроенного пакета System.Speech (или, если это плохая идея, я могу попробовать сделать это на C# другими способами)! Спасибо, что читаете!

Подробнее здесь: https://stackoverflow.com/questions/797 ... -code-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»