标签: sapi

ASP.NET Web应用程序的其他声音

我有一个使用SAPI进行TTS的Web应用程序.我在默认安装了MS Sam的Windows Server 2003上运行它.

据我所知,有很多第三方公司都在销售声音.对于商业应用,哪些公司提供的许可证不收取大量费用?他们有API可以轻松地与ASP.NET应用程序集成吗?

我真的想为应用程序添加更多声音.

编辑:再说一遍?谢谢

asp.net sapi text-to-speech

5
推荐指数
1
解决办法
5935
查看次数

语音培训文件和注册表位置

我有一个演讲项目,需要在代码中完成声学训练.我成功地使用SAPI在Windows 7下创建了带有脚本及其相关注册表项的培训文件.但是,我无法确定识别引擎是否成功使用这些文件并调整其模型.我的问题如下:

  1. 通过控制面板培训UI执行培训时,系统将培训文件存储在"{AppData}\Local\Microsoft\Speech\Files\TrainingAudio"中.音频训练文件是否必须存储在此位置,或者只要配置文件的注册表项反映正确的路径,我是否可以将它们存储在其他位置?

    1. 该语音控制面板中的关键"HKCU \软件\微软\语音\ RecoProfiles\{令牌ProfileGUID} {00000000-0000-0000-0000-0000000000000000} \文件"训练的音频文件创建注册表项.

    一)不要用我的训练代码创建的注册表项必须被放置在"{00000000-0000-0000-0000-0000000000000000} \文件"或者我可以创建{下} ProfileGUID一个新的随机GUID?

    b)子项是否必须命名为"文件"?

    c)注册表值是否必须遵循"TrainingAudio-xxxx-xxxxxxxx-xxxxxxxx"格式,还是可以使用其他值?

    d)最后,注册表值数据的格式为"%1c%\ Microsoft\Speech\Files\TrainingAudio\SP-xxx .... xxx".我可以指定绝对路径吗?

    e)文件名是否必须遵循"SP-xxx .... xxx.wav"格式,或者我可以使用任何唯一的文件名吗?

谢谢.

吉里

speech sapi

5
推荐指数
0
解决办法
822
查看次数

使用Phonics Sounds的文本到语音转换

如何通过按任何字母键来获得拼音?例如,我想A通过按下'A'键来获得语音声音.

我正在使用Microsoft SAPI v5.1.你能指出我正确的方向吗?

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

5
推荐指数
1
解决办法
887
查看次数

C# SAPI 可以讲 SSML 字符串吗?

我在我的 C# WPF 项目中实现了 TTS。

以前,我使用 System.Speech.Synthesis 命名空间中的 TTS 来说话。说话内容为SSML格式(语音合成器标记语言,支持自定义语速、语音、强调)如下:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US"><prosody rate="x-fast">hello world. This is a long sentence speaking very fast!</prosody></speak>
Run Code Online (Sandbox Code Playgroud)

但不幸的是,System.Speech.Synthesis TTS 存在内存泄漏问题,正如我在问题Memory Leak in .Net Speech.Synthesizer?中提到的那样。

所以我决定使用SAPI COM组件。我可以轻松地让SAPI讲纯文本内容。但后来我继续尝试让它说出 SSML 字符串,但失败了。代码如下:

//Initialize TTS instance

SpeechLib.SpVoiceClass tts = new SpeechLib.SpVoiceClass();

//Generate SSML string

string textToSpeak = "hello world speak Extra Fast.";
PromptBuilder pb = new PromptBuilder();
pb.StartStyle(new PromptStyle(PromptRate.ExtraFast));
pb.AppendText(textToSpeak);
pb.EndStyle();

ssmlString = pb.ToXml();    //ssmlString = @"<speak version=""1.0"" .... 

//Speak!

tts.Speak(ssmlString, SpeechLib.SpeechVoiceSpeakFlags.SVSFParseSsml);
Run Code Online (Sandbox Code Playgroud)

代码的重要部分是

tts.Speak(ssmlString, SpeechLib.SpeechVoiceSpeakFlags.SVSFParseSsml);
Run Code Online (Sandbox Code Playgroud)

它使用 …

c# speech sapi text-to-speech ssml

5
推荐指数
1
解决办法
2763
查看次数

使用来自Skype呼叫的MemoryStream,使用SAPI 5.4或MS Speech SDK v11在C#中进行语音识别

我正在尝试使用SAPI 5.4(也是MS Speech Platform SDK v11)对来自Skype呼叫的音频执行连续语音识别.

我可以使用SKYPE4COMLib来获取来自Skype的音频,并通过发出ALTER CALL指令将其推送到TCP端口.您可以将Skype音频定向到文件或TCP套接字.文件工作正常,但我想让它现场运行识别,所以使用TCP套接字.

然后,我构建了一个TCP侦听器来收集传入的数据(音频原始格式),并将字节数组作为MemoryStream传递给SAPI.我已经设置了SAPI,以期望16bit,16khz,mono,PCM格式的原始音频.然而,识别事件永远不会发生?!

我已经尝试将原始音频保存到磁盘,然后将其读入SAPI并且工作正常......因此数据本身很好,Skype正在发送音频.然而,这不能让我做我需要的持续认可.

使用WAV文件或从磁盘或麦克风加载的原始文件,SAPI识别代码可以正常工作.我无法从MemoryStream中获取它.

我发现这篇类似的文章,似乎没有任何建议对我有用,讨论似乎已经变得安静了.

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

有没有人对如何成功让SAPI持续识别C#中作为MemoryStream发送的原始音频的语音有任何指导?

c# memorystream skype sapi

5
推荐指数
1
解决办法
1834
查看次数

Sapi 5.4 和 Microsoft Speech Platform SDK 11 的区别

好吧,我在 Windows 桌面开发论坛上问过这个问题,但仍然没有答案。所以我会在这里试试。

Microsoft Sapi 5.4 和 Microsoft Speech Platform SDK 11 有什么区别?如果您知道,请说明优缺点。

winapi sapi

5
推荐指数
1
解决办法
3152
查看次数

WasapiLoopbackCapture 内部音频识别在没有音频时给出乱码和文本

我终于构建了一个程序来使用 NAudio 收听内部音频环回,并输出识别的文本。问题是它会倾听,并且总是说,例如:

Recognized text: had
Recognized text: had
Recognized text: had
Recognized text: had
Recognized text: had had phone Le K add phone Laton
Recognized text: had phone looked had phone looked had phone looked had phone lo
oked zone
Recognized text: had phone lines to had, had phone looked had phone looked had p
hone line had phone
Recognized text: had phone line had phone looked had phone
Recognized text: had phone looked had phone looked had phone …
Run Code Online (Sandbox Code Playgroud)

c# speech-recognition sapi naudio naudio-framework

5
推荐指数
0
解决办法
548
查看次数

使用Dephi的SAPI:异步语音不起作用

以下工作完美(Delphi 7):

procedure TMainForm.SayIt(s:string); // s is the string to be spoken
var
voice: OLEVariant;
begin
  memo1.setfocus;
  voice := CreateOLEObject ('SAPI.SpVoice');
  voice.Voice := voice.GetVoices.Item(combobox1.ItemIndex); // current voice selected
  voice.volume := tbVolume.position;
  voice.rate := tbRate.position;
  voice.Speak (s, SVSFDefault);
end;
Run Code Online (Sandbox Code Playgroud)

以上工作在"同步"模式(SVSFDefault标志),但如果我在尝试以异步模式播放声音时将标志更改为SVSFlagsAsync,则不会产生声音.没有给出错误消息,但扬声器上没有播放任何内容.

问题可能是什么?我在Delphi的Imports文件夹中有SpeechLib_TLB单元.

编辑:这是在Windows XP中

谢谢,布鲁诺.

delphi sapi text-to-speech delphi-7

4
推荐指数
1
解决办法
1989
查看次数

C++ MSAPI 5:SetNotifyCallbackFunction 不起作用

所以我用事件示例尝试了MSAPI 5.4 TTS。现在我创建了一个使用 SetNotifyCallbackFunction 的 cmd 提示应用程序,但我传递的函数没有被调用。我不是 C++ 专家,所以我在解决这个问题时遇到了困难,谁能指出我正确的方向,或者至少给我一个 SetNotifyCallbackFunction 的好例子?

这是我的代码的简化版本:

typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);

void __stdcall outsideeventFunction(WPARAM, LPARAM);

void __stdcall outsideeventFunction(WPARAM wParam, LPARAM lParam){
    std::cout << "Event called::wParam: " << wParam << " lParam: " << lParam << std::endl;
    SPEVENT eventItem;
    memset(&eventItem, 0, sizeof(SPEVENT));
    while (SUCCEEDED(pV->GetEvents(1, &eventItem, NULL)))
    {
        bool exitNa = false;
        switch (eventItem.eEventId)
        {
        case SPEI_WORD_BOUNDARY:
            SPVOICESTATUS eventStatus;
            pV->GetStatus(&eventStatus, NULL);
            ULONG start, end;
            start = eventStatus.ulInputWordPos;
            end = eventStatus.ulInputWordLen; …
Run Code Online (Sandbox Code Playgroud)

c++ events sapi event-handling speech-synthesis

4
推荐指数
1
解决办法
756
查看次数

Python 3.4 - 使用 SAPI 进行文本到语音转换

我试图使用此代码使用Python 3.4将文本转换为语音,但由于我的计算机的主要语言不是英语(我使用的是Win7x64),因此语音和口音是错误的(因为我希望它“说”英语) 。

import win32com.client
speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak("Hello, it works!")
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法改变(程序的,而不是系统的)语音/语言?另外,您认为有更好的方法吗?也许一个模块可以在每个系统上工作?

python windows sapi python-3.x

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