长时间读者,第一次海报. 我正在开发C#.NET 3.5中的Windows服务,以执行文本到语音操作. 我正在使用system.speech(Microsoft Speeck Api 3.x). 我将服务部署到WIN2008 X64服务器,现在抛出以下例外: System.InvalidOperationException: No voice installed on the system or none available with the current security setting. at System.Speech.Internal.Synthesis.VoiceSynthesis.Speak(Prompt prompt) at System.Speech.Synthesis.SpeechSynthesizer.Speak(Prompt prompt) at System.Speech.Synthesis.SpeechSynthesi
以下是关于 text-to-speech 的编程技术问答
我有一个ASP.NET MVC应用程序,该应用程序具有控制器操作,该操作将字符串作为输入,并发送合成语音的响应WAV文件.这是一个简化的示例: public async Task Speak(string text) { Task task = Task.Run(() => { using (var synth = new System.Speech.Synthesis.SpeechSynthesizer()) using (var stream = new MemoryStream()) { synth.SetOutputToWaveStream(stream); synth.Speak(text);
在我的个人网站上,我想让它"发音" 我解决了"概念"问题,如在这里和在我的台式机上,它从Visual Web开发人员发射时可以顺利进行.创建一个文件,然后页面中的嵌入式播放器将播放它.完美. 所以,我将其上传到服务器上...我得到了此错误500: "/sapi"应用程序中的服务器错误. 访问被拒绝. (来自 Hresult:0x80070005(e_accessdenied)) 描述:一个未经治疗的例外 发生在执行期间 当前的Web请求.请查看 堆栈跟踪以获取有关的更多信息 错误及其起源于哪里 代码. 例外详细信息: system.unauthorizedAccessexception: 访问被拒绝. (来自 Hresult:0x80070005(e_accessdenied)) ASP.NET无权访问 请求的资源.考虑 授予对资源的访问权利 到ASP.NET请求身份. ASP.NET具有基本流程身份 (通常在IIS上{Machine} \ Aspnet 5
是Winrt中可用的语音API(例如Windows Phone 8). 我可以使用一些第三方演讲API吗? 我想在Windows 8/Winrt应用程序中实现TTS,有人有一些建议吗? 解决方案 现在可用于Winrt 语音命令和语音识别仅在电话上可用. TTS可用于所有WinRT设备. 其他解决方案 Winrt中没有语音API. 可能有第三方Winrt组件,您必须寻找这些组件.我什么都不知道,但我只进行了粗略的搜索. 如果将应用程序连接到应用程序要求不是问题,则可以使用其他解决方案 对于仅对语音的文本(不识别),这些API直接添加到Windows 8.1中.他们在名称空间.
我正在尝试编写代码以大声朗读传入的吐司(这在WP8.1中很微不足道) 到目前为止,我有这个 使用MediaElement似乎在电话或手机上或没有音频都无法使用(代码) 模拟器 使用BackgroundMediaPlayer在模拟器中起作用,但在电话中不作用 我尝试了从UI线程(MediaElement仅在UI线程上起作用)和BackgroundMediaPlayer,从处理传入Toast的线程 var mediaElement = new MediaElement(); using (var tts = new SpeechSynthesizer()) { using (var ttsStream = await tts.SynthesizeSsmlToStreamAsync(ssml)) { //BackgroundMediaPlayer.Current.SetStreamSource(ttsStream); mediaE
我在我的应用中添加了语音综合.它有效,但问题是我无法取消演讲...例如,当我导航到另一个页面时,演讲继续...因此,我调用cancelall()方法取消当前的演讲,但是发生了例外我不知道为什么.你知道有什么问题吗? 例外 A first chance exception of type 'System.Threading.Tasks.TaskCanceledException' occurred in mscorlib.ni.dll An exception of type 'System.Threading.Tasks.TaskCanceledException' occurred in mscorlib.ni.dll and wasn't handled before a managed/native boundary An exception of type 'System.Threading.Tasks.TaskCanceledException' occurred
我试图制作一个简单的控制台程序,该程序使用System.Speech.Synthesis使用SpeechSynthesizer将文本转换为语音,但行不通. 我正在使用64位Windows 7和Visual Studio 2010(我认为使用.NET Framework 4.0?) 程序: using System.Speech.Synthesis; // *skip* SpeechSynthesizer speech = new SpeechSynthesizer(); speech.SetOutputToDefaultAudioDevice(); speech.Speak("Hello world"); InvalidOperationException发生在LINE speech.Speak(...)中,消息系统上安装了无语音或当前安全设置没有可用的语音. speech.GetInstalledVoices()表明安装了Microsoft Anna,并且它
我安装了一些英语包(美国,英国和加拿大)的语音选项,我可以在Windows 10设置中访问它们 - >语音,但它们没有显示到Control Panel和I Control Tock无法将声音与应用一起使用! 我只能使用David和Zira的默认声音! 有什么想法如何使用其他声音? 解决方案 Windows 10具有默认安装的两个不同的TTS引擎.这里有 >(在Windows.media.speechsynthesis名称空间中)和 David和Zira是Sapi的声音;语言包安装winrt声音. sapi apis和声音是传统的API,并且没有进一步发展.所有新的声音和努力都进入了winrt apis和声音. 如果您想使用语言包的声音,则需要将应用程序移至WinRT并使用Winrt API. 其他解决方案 我通过修改Windows注册表来解决此问题.就我而言,在Windows 10下,我使用TTS软件包安装了德语,它安装了女性声音(Winrt和SA
我在区域和语言下使用"添加语言"添加了许多声音.这些出现在语音中的文字到语音下. (我正在使用Windows 10) 我想在System.Speech.Synthesis中的SpeechSynthesizer类中使用这些这些. 在我的应用程序中列出可用的声音时,只显示了几个实际可用的声音: static void Main() { SpeechSynthesizer speech = new SpeechSynthesizer(); ReadOnlyCollection voices = speech.GetInstalledVoices(); if (File.Exists("available_voices.txt")) { File.WriteAllText("available_voices.txt", string.Empty); } using (StreamW
所以我在Python任职了个人语音助手,目前与Microsoft David交谈. Microsoft有一些预先构建的声音,您可以从设置和语音设置中添加更多声音,但不能添加您自己的声音.我有两个文字来讲话,其中之一就是我想要的.那么如何选择该声音呢? 这是代码: import pyttsx3 Assistant = pyttsx3.init('sapi5') voices = Assistant.getProperty('voices') Assistant.setProperty('voices', voices[0].id) Assistant.setProperty('rate', 180) def Speak(audio): print(" ") Assistant.say(audio) print(f"JARVIS: {audio}") print(" ") Assistant.runAndWait() 解决方案 我想您
问题:我在线程中启动MS文本对语音引擎,以避免在DLL_ATTACH上崩溃.它可以很好地开始,并且语音引擎的文本被初始化,但是我无法在线程外访问ISPVOICE.如何在线程外访问ISPVOICE?毕竟这是一个全局变量... 您在这里找到Xpthreads: http://www.codeproject.com/kb/kb/threads/xpthreads/xpthreads/xpthreads/xpthread > #include #include #include "XPThreads.h" ISpVoice * pVoice = NULL; unsigned long init_engine_thread(void* param) { Sleep(5000); printf("lolthread\n"); //HRESULT hr = CoInitializeEx(NULL, COINIT_MULT
我们有一个应用程序,我们正在计划使用Microsoft Speeck API.现在,我们使用Microsoft Sam语音在Windows XP上测试了它,坦率地说,听起来很糟糕...几乎不可能听到声音要说的话. 还有其他更好的声音.是否有任何更新或更新版本更好.还有其他产品,开源项目等可以作为替代方案吗? 只是为了澄清 - 它需要具有某种API,因此我实际上可以对其进行编程. 解决方案 在窗户上我发现的最好的是使用语音API和AT&T自然声音的声音: https://nextup.com/attnv.html 但是,如果有的话,它们非常昂贵.我遇到了使用AT&T的想法,即他们甚至不会出售许可证. 有一个免费的软件替代品,节日:对我来说效果很好的第三个替代方案是将一些项目的语音合成部分转移到OSX.OSX具有一组不错的工具和语音API和相当不错的股票声音.当然,缺点是仅在Apple硬件上运行的OS X下为这些API编写的Prorams. 其他解决方案 A
我已经使用了此堆栈溢出答案遍历所有安装的Windows To Text-Speech声音,但是我很难提取每个属性的属性.例如性别,语言,名称等 我假设有一种方法可以提取可用于查找声音的属性,例如gender=female;language=409 if ( FAILED( ::CoInitialize( NULL ) ) ) return 1; HRESULT hr = S_OK; CComPtr cpVoice; //Will send data to ISpStream CComPtr cpStream; //Will contain IStream CComPtr cpBaseStream; //raw data ISpObjectToken* cpToken( NULL ); //Will set voice characteristics GUID guidFormat; WAVEFORMAT
在我的应用中,我使用TTS的Synthesizetofile方法创建一个音频文件,并且可以正常工作. 然后,当文件生成时,我想通过whatsapp共享它,然后再次工作正常.但是谁收到文件"剪切"收到文件,而不是我的文件夹中的完整音频. 这是代码: @TargetApi(Build.VERSION_CODES.LOLLIPOP) public void shareAudioText() { String textToShare = mEditTextMain.getText().toString(); File file = new File (mContext.getExternalFilesDir(null), "AudioFiles"); if (!file.exists()) { boolean status = file.mkdir(); if (status) {
我搜索了很多小时,没有真正的答案. 无论如何是否有与文本到语音函数的默认语言不同的语言? 此代码在PC上的Chrome上完美工作,但在Android浏览器上不工作: $(function(){ if ('speechSynthesis' in window) { speechSynthesis.onvoiceschanged = function() { var $voicelist = $('#voices'); if($voicelist.find('option').length == 0) { speechSynthesis.getVoices().forEach(function(voice, index) { console.log(voice); var $option = $('') .val(index)
现在使用卷曲和沃森TT已有一段时间了. 突然间,它停止了工作. 它创建了音频文件,但它是不播放的,并且尺寸很小 curl -X POST -u "apikey:APIKEY" ^ --header "Content-Type: application/json" ^ --header "Accept: audio/wav" ^ --data "{\"text\":\"Test IBM Watson TTS.\"}" ^ --output Test.wav ^ "https://api.us-south.text-to-speech.watson.cloud.ibm.com/instances/d73ba88c-84fc-45d2-b1bd-7b95066c280a/v1/synthesize?voice=en-US_MichaelV3Voice" 有人有任何想法吗? 解决方案 您的很小的音频文件实际上是包含错误代码的文本文件.猫它要么用文本编辑器打开它,然后检查报告什么
我正在尝试在.NET Core 2 Web API中实现Nexmo的语音API. 此API需要: 通过电话接收音频,通过 nexmo 使用Microsoft认知 api 将文本发送到bot 使用Microsoft认知通过他们的语音API Websocket将演讲发送回Nexmo 目前,我正在绕过机器人步骤,因为我首先尝试连接到Websocket. 尝试回声方法(将音频收到的音频发送回Websocket)时,它可以毫无问题. 但是,当我尝试将演讲从Microsoft文本发送到语音时,电话会结束. 我找不到任何与Echo不同的文档. textTospeech和segredTotext方法在Websocket以外使用时按预期工作. 这是语音到文本的Websocket: public static async Task Echo(HttpContext context, WebSocket webSocket) { var buff
我已经将文本纳入了ASP.NET WebForms应用程序中,该应用程序在本地运行时正常运行.当我部署到Azure网站时,似乎正在处理null引用. 我试图将WebForms应用程序发布到Azure上,并在System.Speech .dll上使用" local"为true.但是,问题仍然存在. 有什么我缺少的东西来获得system.speech在Azure网站上工作吗? 我已经研究并发现了一段时间的帖子,说这不支持它,但我希望5月的加时赛变化.如果是这种情况,我需要找到一些第三方TTS服务. 解决方案 System.Speech是桌面API,在服务器系统上绝对不支持. microsoft.speech.synthesisy 是服务器API )服务器.但是,我不确定是否可以将其部署在Azure网站上,因为它需要对已安装的软件进行大量更新(用于声音等). 其他解决方案 由于Azure无法支持这一点,所以我发现这是有效的工作. 在 它使用Microsoft
我想以不同的声音实现语音综合,但是我想拥有所有主要浏览器支持的声音列表,类似于"标准Web字体". 2018年这个列表是什么? 解决方案 以下提到的声音列表 - 用于Google Chrome, [" Microsoft David Desktop -English(美国)"," Microsoft Zira Desktop-英语(美国)"," Google Deutsch"," Google US US English", " Google UK英语女性"," Google UK英语男性"," GoogleEspañol"," Googleespañoldeestados unidos"," Googlefrançais"," Googleहिनहिनहिन"," Google bahasa Indonesia"," Google Italiano"," Google"," Google"日本语"," Google한국"," Google Nederlands","