标签: sapi

使用SAPI 5.3 Speech API进行声学训练

在Vista上使用Microsoft的SAPI 5.3 Speech API,您如何以编程方式对RecoProfile进行声学模型培训?更具体地说,如果您有一个文本文件和一个用户说出该文本的音频文件,您将使用该文本和音频训练用户的个人资料进行什么样的SAPI调用?

更新:

关于这个问题的更多信息我还没有解决:你在"开头"调用ISpRecognizer2.SetTrainingState(TRUE,TRUE),在"结尾"调用ISpRecognizer2.SetTrainingState(FALSE,TRUE).但目前还不清楚这些行动何时必须相对于其他行动发生.

例如,您必须进行各种调用以设置语法,其中包含与您的音频匹配的文本,以及其他用于连接音频的调用,以及对各种对象的其他调用,以表示"您现在可以开始使用".但是什么是相互依赖性 - 在其他什么之前必须发生什么?如果您使用音频文件而不是系统麦克风进行输入,这是否会使相对时间变得不那么宽容,因为识别器不会继续坐在那里听,直到说话者正确?

speech-recognition speech sapi

9
推荐指数
1
解决办法
8848
查看次数

我在哪里可以使用Windows 7中的System.Speech获取.net应用程序的声音?

我对Windows中的文本到语音技术感到困惑.我有一个稍微特殊的要求:我需要使用System.Speech程序集从Win 7中运行的.net程序输出语音.我想要一个好的,机器人的声音,没有像微软安娜那样强烈的美国口音.

哪个第三方声音适用于.net api?有谁知道一个好的英国(但不是太英国)的声音,最好免费或便宜?

.net sapi text-to-speech

9
推荐指数
1
解决办法
2899
查看次数

无法打开包含文件:'atlbase.h':没有这样的文件或目录

请查看以下代码

#define _ATL_APARTMENT_THREADED

#include <atlbase.h>
//You may derive a class from CComModule and use it if you want to override something,
//but do not change the name of _Module
extern CComModule _Module;
#include <atlcom.h>

#include <sapi.h>
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
 cout << "Hello" << endl;
 ISpVoice * pVoice = NULL;

 if (FAILED(::CoInitialize(NULL)))
     return FALSE;

 HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
 if( SUCCEEDED( hr ) )
 {
     cout << "Succeeded" << …
Run Code Online (Sandbox Code Playgroud)

c++ windows qt sapi header-files

9
推荐指数
2
解决办法
4万
查看次数

将输入流式传输到System.Speech.Recognition.SpeechRecognitionEngine

我试图从TCP套接字在C#中进行"流式"语音识别.我遇到的问题是SpeechRecognitionEngine.SetInputToAudioStream()似乎需要一个可以寻找的定义长度的Stream.现在,我能想到的唯一方法就是在更多输入进来时在MemoryStream上重复运行识别器.

这里有一些代码来说明:

            SpeechRecognitionEngine appRecognizer = new SpeechRecognitionEngine();

            System.Speech.AudioFormat.SpeechAudioFormatInfo formatInfo = new System.Speech.AudioFormat.SpeechAudioFormatInfo(8000, System.Speech.AudioFormat.AudioBitsPerSample.Sixteen, System.Speech.AudioFormat.AudioChannel.Mono);

            NetworkStream stream = new NetworkStream(socket,true);
            appRecognizer.SetInputToAudioStream(stream, formatInfo);
            // At the line above a "NotSupportedException" complaining that "This stream does not support seek operations."
Run Code Online (Sandbox Code Playgroud)

有谁知道怎么解决这个问题?它必须支持某种类型的流输入,因为它使用SetInputToDefaultAudioDevice()与麦克风一起工作正常.

谢谢,肖恩

c# sockets streaming speech-recognition sapi

8
推荐指数
2
解决办法
7398
查看次数

.Net Speech.Synthesizer中的内存泄漏?

我在申请中发现了连续泄漏.在使用内存分析器进行检查后,我发现该课程是Microsoft Speech.Synthesizer中的一些对象

所以我建立了一个玩具项目来验证这个假设:

//在Speech.Synthesizer对象中显示内存泄漏的玩具示例

static void Main(string[] args)
{
    string text = "hello world. This is a long sentence";
    PromptBuilder pb = new PromptBuilder();
    pb.StartStyle(new PromptStyle(PromptRate.ExtraFast));
    pb.AppendText(text);
    pb.EndStyle();
    SpeechSynthesizer tts = new SpeechSynthesizer();

while (true)
{
    //SpeechSynthesizer tts = new SpeechSynthesizer();
    Console.WriteLine("Speaking..."); 
    tts.Speak(pb);

    //Print private working set sieze
    Console.WriteLine("Memory: {0} KB\n", (Process.GetCurrentProcess().PrivateMemorySize64 / 1024).ToString("0"));

    //tts.Dispose();    //also this doesn't work as well
    //tts = null;

    GC.Collect();   //a little help, but still leaks
}
}
Run Code Online (Sandbox Code Playgroud)

结果实际证实内存泄漏来自Speech.Synthesizer

Speaking...
Run Code Online (Sandbox Code Playgroud)

内存:42184 KB

说到......内存:42312 KB

说到......内存:42440 …

.net c# memory-leaks sapi speech-synthesis

8
推荐指数
1
解决办法
2577
查看次数

微软语音识别速度

我正在使用微软的语音识别器开发一个小型练习应用程序.我似乎无法让它快速识别单个单词,而不是我正在做的事情.我希望能够正常说话,系统将从我所说的内容中获取"关键字"并生成一个字符串.目前我使用的是5个单词的自定义语法.红色,蓝色,黄色,绿色,橙色.例如,如果我说红蓝黄色.引擎将抓住"红色",其余的进入虚空.

我尝试过使用以下内容:

sr.RecognizeAsync(RecognizeMode.Single)
Run Code Online (Sandbox Code Playgroud)

然后在AudioState更改为"已停止"后将其重置为单一模式.这还不足以赶上下一个词.思考?

c# speech-recognition sapi

7
推荐指数
1
解决办法
1764
查看次数

如何使用Microsoft SAPI将文本转语音保存为wav?

我需要将文本转换为语音,然后将其保存为wav文件.

c# sapi text-to-speech

6
推荐指数
3
解决办法
9459
查看次数

System.Speech.Recognition选择识别配置文件

有谁知道如何在.NET应用程序中更改识别配置文件?

我正在编写一个.NET应用程序,它使用System.Speech.Recognition命名空间中的功能进行语音识别.我输入系统的音频来自多个不同的用户.我希望能够训练系统以更准确地识别来自每个不同用户的语音.

我在Windows(本例中为Windows 7)中找到了语音识别控制面板,我可以在其中配置训练配置文件.为自己设置一个配置文件并进行培训过程可以显着提高识别的准确性.因此,我可以为每个用户设置配置文件并让他们进行培训,但我需要能够在我的应用程序中选择正确的配置文件.

我的应用程序是"服务器",它一次接收来自一个或多个用户的音频流并执行语音识别.因此,我需要能够以编程方式为我的应用程序创建的每个识别引擎实例指定哪个识别配置文件.这不是单个用户应用程序,因此我不能让他们从Windows控制面板中选择他们的配置文件.

.net c# speech-recognition sapi speech-to-text

6
推荐指数
1
解决办法
5069
查看次数

C++ Microsoft SAPI:如何将Windows文本到语音输出设置为内存缓冲区?

我一直试图弄清楚如何使用Windows SAPI 5.1将文本"说"到内存缓冲区,但到目前为止还没有成功,尽管看起来它应该非常简单.

一个将合成语音流式传输到.wav文件的示例,但没有关于如何将其流式传输到内存缓冲区的示例.

最后,我需要在16*16位小端PCM格式的char*数组中使用合成语音.目前我创建了一个临时.wav文件,在那里重定向语音输出,然后读取它,但它似乎是一个相当愚蠢的解决方案.

谁知道怎么做?

谢谢!

sapi text-to-speech visual-c++

6
推荐指数
2
解决办法
2678
查看次数

如何更改 SAPI.SPVoice 使用的语音

我希望能够为我的文本转语音输出选择替代语音。
\n我正在使用 ComObject SAPI.SPVoice,但我发现我无法更改实际使用的语音。
\n(顺便说一句 - 我正在使用 SAPI.SPVoice,因为它适用于 Windows 10 上的 PowerShell Core 和 PowerShell Desktop)

\n\n
${PromptTTS} = New-Object -ComObject SAPI.SPVoice\n
Run Code Online (Sandbox Code Playgroud)\n\n
\xe2\x9d\xaf $PromptTTS | gm\n
Run Code Online (Sandbox Code Playgroud)\n\n
   TypeName: System.__ComObject#{269316d8-57bd-11d2-9eee-00c04f797396}\n\nName                                   MemberType   Definition\n----                                   ----------   ----------\nDisplayUI                              Method       void DisplayUI (int hWndParent, string Title, string TypeOfUI, Variant ExtraData)\nGetAudioOutputs                        Method       ISpeechObjectTokens GetAudioOutputs (string RequiredAttributes, string OptionalAttributes)\nGetVoices                              Method       ISpeechObjectTokens GetVoices (string RequiredAttributes, string OptionalAttributes)\nIsUISupported                          Method       bool IsUISupported (string TypeOfUI, Variant ExtraData)\nPause                                  Method       void Pause ()\nResume                                 Method       void Resume ()\nSkip                                   Method       int Skip (string Type, int …
Run Code Online (Sandbox Code Playgroud)

windows powershell sapi windows-10

6
推荐指数
1
解决办法
9238
查看次数