精华内容
下载资源
问答
  • windows7安装tts语音
    千次阅读
    2021-08-03 20:09:00

    工作中excel的朗读功能可以校验输入数值是否正确,非常方便,而有的系统阉割了语音功能。本文结合网上的经验和自己的反复实验,纠正了网上的一些错误,总结了比较简洁的方法

    链接:https://pan.baidu.com/s/1_wCL1LFZLMwplmkGCGzGBA 提取码:1111

    方法1:使用第三方语音引擎

    1.首先下载TTSrepair.exe安装,该安装程序为第三方公司提供,反复测试并无病毒,安装后可以在控制面板中的硬件和声音中找到语音

    2.安装上文中的girl_xiaokun.exe,这是捷通华声为金山词霸提供的XiaoKun女声中英文TTS语音包,安装后在控制面板中的硬件和声音中找到语音

    3.到此Excel的语音朗读功能就可以使用了。如果需要微软的语音引擎接下里的步骤复杂一些。

    方法2:使用微软语音引擎

    1.同样需要TTSrepair.

    更多相关内容
  • Win7系统下不能使用TTS语音引擎的问题。如果大家没使用正版的windows系统,那么很可能你的TTS语音是没有的。可以通过使用该补丁包解决TTS问题
  • Win7系统微软TTS语音修复补丁(x86和x64) 说明:本修复补丁适用于32位或64位Win7系统,会自识别安装
  • win7使用huihui语音tts

    2020-12-26 22:29:18
    win7使用huihui语音tts
  • win7系统调用tts语音朗读功能

    千次阅读 热门讨论 2020-09-18 10:08:34
    windowstts组件,正版系统或者win10系统是可以直接调用成功的,但win7有的是阉割版,有的不支持,调用的时候各种异常,网上的人各种抄袭,不知道所以然,还爱瞎bb,我就费了好大劲才完全搞清楚。 常见的异常有: ...

    windows的tts组件,正版系统或者win10系统是可以直接调用成功的,但win7有的是阉割版,有的不支持,调用的时候各种异常,网上的人各种抄袭,不知道所以然,还爱瞎bb,我就费了好大劲才完全搞清楚。
    常见的异常有:

    System.IO.FileNotFoundException
      HResult=0x8007007E
      Message=检索 COM 类工厂中 CLSID 为 {D9F6EE60-58C9-458B-88E1-2F908FD7F87C} 的组件失败,原因是出现以下错误: 8007007e 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
      Source=System.Speech
      StackTrace:
       在 System.Speech.Internal.ObjectTokens.RegistryDataKey..ctor(String fullPath, IntPtr regHandle)
       在 System.Speech.Internal.ObjectTokens.RegistryDataKey.Open(String registryPath, Boolean fCreateIfNotExist)
       在 System.Speech.Internal.ObjectTokens.SAPICategories.DefaultDeviceOut()
       在 System.Speech.Internal.Synthesis.VoiceSynthesis..ctor(WeakReference speechSynthesizer)
       在 System.Speech.Synthesis.SpeechSynthesizer.get_VoiceSynthesizer()
       在 System.Speech.Synthesis.SpeechSynthesizer.SpeakAsync(Prompt prompt)
       在 System.Speech.Synthesis.SpeechSynthesizer.SpeakAsync(String textToSpeak)  
    
    SampleTTSVoice,System.ArgumentException: 不能设置语音。未安装匹配的语音,或语音被禁用。
       在 System.Speech.Synthesis.SpeechSynthesizer.SelectVoice(String name)
    

    开发语言可以使用C#,java,Python,或者微软的VBS,都可以,这几种语言的朗读代码网上都很好找,主要就是配置windows环境。
    https://download.csdn.net/download/weixin_42209881/12844165
    这是win7的tts修复包,下载下来直接安装,很简单。
    修复好之后,就可以进行代码开发了,我以java为例,C#的和Python的可以留言,谁需要,找我要:
    先下载一个这个jar包 : jacob.jar在这里插入图片描述
    再下载一个dll库(32位和64位的注意区分):jacob-1.17-M2-x64.dll
    在这里插入图片描述
    这个dll库下载好之后要放在jdk和jre的bin目录下(jre的bin目录放不放不影响,但放上稳妥),就像这样
    在这里插入图片描述

    这些所有依赖我都放在了一起,可以一次下载下来:
    在这里插入图片描述
    下载链接:
    https://download.csdn.net/download/weixin_42209881/12857855
    然后看java代码:

    package com.zhang.test.speak;
    
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;
    
    public class SpeakVoice {
    
    	
    	public static void main(String[] args) {
    		System.out.println(args[0]);
    		speak(args[0]);
    		//strat("语音朗读的内容", 0);
    		System.exit(1);
    	}
    
    		/**
    		 * 
    		* @Title: strat
    		* @Description: 该方法的主要作用:朗读
    		* @param  @param content
    		* @param  @param type 设定文件   0:开始,1停止
    		* @return  返回类型:void   
    		* @throws
    		 */
    		public static void strat(String content, int type) {
    			//这个Sapi.SpVoice是需要安装什么东西吗,感觉平白无故就来了
    			ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");
    			// Dispatch是做什么的?
    			Dispatch sapo = sap.getObject();
    			
    			if (type == 0) {
    				try {
    					// 音量 0-100
    					sap.setProperty("Volume", new Variant(100));
    					// 语音朗读速度 -10 到 +10
    					sap.setProperty("Rate", new Variant(1.3));
    					Variant defalutVoice = sap.getProperty("Voice");
    	 
    					Dispatch dispdefaultVoice = defalutVoice.toDispatch();
    					Variant allVoices = Dispatch.call(sapo, "GetVoices");
    					Dispatch dispVoices = allVoices.toDispatch();
    	 
    					Dispatch setvoice = Dispatch.call(dispVoices, "Item",
    							new Variant(1)).toDispatch();
    					ActiveXComponent voiceActivex = new ActiveXComponent(
    							dispdefaultVoice);
    					ActiveXComponent setvoiceActivex = new ActiveXComponent(
    							setvoice);
    	 
    					Variant item = Dispatch.call(setvoiceActivex, "GetDescription");
    					// 执行朗读
    					Dispatch.call(sapo, "Speak", new Variant(content));
    	 
    				} catch (Exception e) {
    					e.printStackTrace();
    				} finally {
    					sapo.safeRelease();
    					sap.safeRelease();
    				}
    			} else {
    				// 停止
    	 
    				try {
    					Dispatch.call(sapo, "Speak", new Variant(content), new Variant(
    							2));
    				} catch (Exception e) {
    					System.out.println(e.getMessage());
    					e.printStackTrace();
    				}
    			}
    	 
    		}
    		
    		
    		public static void speak(String text) {
    	         ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");  
    	            try {  
    	                // 音量 0-100  
    	                sap.setProperty("Volume", new Variant(100));  
    	                // 语音朗读速度 -10 到 +10  
    	                sap.setProperty("Rate", new Variant(0));  
    	                // 获取执行对象  
    	                Dispatch sapo = sap.getObject();  
    	                // 执行朗读  
    	                Dispatch.call(sapo, "Speak", new Variant(text));  
    	                // 关闭执行对象  
    	                sapo.safeRelease();  
    	            } catch (Exception e) {  
    	                e.printStackTrace();  
    	            } finally {  
    	                // 关闭应用程序连接  
    	                sap.safeRelease();  
    	            }  
    	    }
    
    }
    

    那个下载包里的speak.jar就是我这些代码生成的工具jar包,可以直接调用:
    在这里插入图片描述
    像这样,运行后,就听到响亮的朗读声音了
    有什么不到之处,欢迎大家下方留言,讨论

    展开全文
  • 微软的TTS语音功能,但是在部分用户那里无法正常使用,,是由于用户使用了选简化版的Win7和XP操作系统导致。
  • win7TTS语言包.zip

    2021-05-24 11:56:56
    可解决win7下speechSynthesis没有声音的问题,按照zip中description.txt的安装流程安装即可
  • TTS语音驱动,自带WindowsXP/WIN 7修复程序
  • 讯飞TTS-C#封装,方便c#使用TTS功能
  • windows Text To Speecht_tts语音引擎修复补丁集成版,修复阉割版无法使用语音播放功能。
  • 谷歌TTS离线语音包.zip

    2021-05-10 14:25:17
    Google TTS中文语音数据包内置,/data/user/0/com.google.android.tts/app_voices_greco_v16
  • win7 win10语音识别修复

    2021-09-19 14:38:29
    win7 win10语音识别修复
  • 提取自GoogleTTS中文语音数据包,供系统开发时内置中文语音,com.google.android.tts/app_voices_greco_v16
  • 语音识别修复之TTS.rar

    2020-09-10 12:35:48
    TTS是Text To Speech的缩写,即“从文本到语音”,Win7系统微软TTS语音修复,没有TTS可能无法实验文本到语音的转换。
  • 适用于Windows 7的文本到语音TTS程序,采用了简约的方法。 *播放纯文本文件,复制到剪贴板以及来自程序编辑控件的文本。 *打开,保存并追加到文本文件。 *在交互模式下暂停,恢复和停止播放。 *将文本保存到“ wav...
  • Win7系统微软TTS语音修复,亲测可用,如有疑问请及时评论,我好关闭资源,其他废话没啥说的了111111111
  • 1.先打开setup.exe安装; 2.再安装win7或xp TTS语音引擎修复2.0(必用).exe修复; 3.LangPack再安装语言包; 4.在控制面板可以看到语音32位可以修改控制
  • JAVA TTS语音

    2020-11-30 15:37:36
    jacob-1.18-M2-x64.dll、jacob-1.18-M2-x86.dll拷贝到C:\Windows\System32
  • 微软TTS语音引擎提供了Windows Speech SDK开发包供编程者使用。Windows Speech SDK包含语音合成SS引擎和语音识别SR引擎两种,语音合成引擎用于将文字转换成语音输出,语音识别引擎用于识别语音命令。
  • 科大讯飞离线TTS语音朗读引擎 windws sdk ,c代码 封装成dll使用C#调用 由于讯飞的离线sdk与appid 是捆绑的,所以需要在讯飞开发平台生成自己的应用和appid 并下载 windows 离线语音合成 sdk ,能够运行 demo 里的 ...
  • 一个python离线的TTS语音合成,简单实现和使用!首先将文本与语音对照的方法实现了转换,然后再播放对应文字对应的拼音所对应的音频来播放语音 。缺点是没有进行音频合成。
  • windows下文本转语音TTS库封装

    千次阅读 2020-10-11 10:59:26
    windows下我们将文本转语音使用的就是windows自带的COM组件,也就是TTS库,为了方便使用我将语音转文本的库封装成一个Dll库,目的也是为了后续组件化和模块化后续系统的功能,该封装库仅有三个功能: (1)语音库的...

    一、文本转语音实现

     

    本文提及的文本转语音库其实很多年前写的库,最近有才时间整理才将对应库整理成文章供各位网友参考。

    其实在windows下自带了文本转语音以及语音识别的功能,这里由于项目中需要将报警文本信息使用语音形式转化出来,所以这里仅仅只介绍文本转语音的使用。

     

    windows下我们将文本转语音使用的就是windows自带的COM组件,也就是TTS库,为了方便使用我将语音转文本的库封装成一个Dll库,目的也是为了后续组件化和模块化后续系统的功能,该封装库仅有三个功能:

    (1)语音库的初始化

    //-------------------------------------------------
    //	功  能:语音库的初始化
    //  参  数:
    //		无
    //	返回值:
    //		成功返回true反之返回false
    //	说  明:
    //		在系统初始化的时候调用该接口与TTS_UnInit对应
    //-------------------------------------------------
    TTSSDK_API bool TTS_Init();

    (2)本文转语音

    //-------------------------------------------------
    //	功  能:语音库的初始化
    //  参  数:
    //		【输入】content		:	需要播放的文字内容
    //		【输入】size		:	播放的文字内容长度
    //	返回值:
    //		无
    //	说  明:
    //		为了性能,该接口是异步接口调用后后台自动播放
    //-------------------------------------------------
    TTSSDK_API void TTS_Speak(const char* content,const int size);

    (3)语音库的反初始化

    //-------------------------------------------------
    //	功  能:语音库的反初始化
    //  参  数:
    //		无
    //	返回值:
    //		无
    //	说  明:
    //		在系统退出的时候调用该接口以使用资源
    //-------------------------------------------------
    TTSSDK_API void TTS_UnInit();

    我们将重点放在第三个接口的实现上:  

    TTSSDK_API void TTS_Speak(const char* content,const int size)
    {
    	NetCommandPtr pCmd = boost::make_shared<CNetCommand>(boost::BOOST_BIND(CTtsInstance::Speek, content));
    	CMessageEngine::get_mutable_instance().Post(pCmd);
    }
    

    该接口的实现是通过异步方式调用的,这里使用了boost封装的消息处理引擎处理对应的消息,其目的是为了上层应用调用的完成之后可以继续做自己的工作,而不影响上层应用,特别是UI相关的线程,因为语音播放如果是同步播放的,10几个文字播放出来(包括标点符号的停顿)大概需要6-10秒,所以该接口是做成了异步处理。

     

    最后,我们只需要关注TTS的实例的Speek方法实现就可以了:

    bool CTtsInstance::Speek(std::string text)
    {
    	// window 64[不能使用-只能调用32bit程序]
    	if (!CTtsInstance::Prepared())
    	{
    		TCHAR filePath[MAX_PATH] = { 0 };
    		GetModuleFileName(NULL, filePath, MAX_PATH);
    		_tcsrchr(filePath, _T('\\'))[1] = _T('\0');
    		_tcscat(filePath, _T("tts.exe"));
    
    		if (-1 == _taccess(filePath, 0))
    			return false;
    
    		STARTUPINFO   si = { 0 };
    		ZeroMemory(&si, sizeof(si));
    		si.cb = sizeof(si);
    		si.dwFlags = /*STARTF_USESHOWWINDOW*/0;
    		si.wShowWindow = /*SW_SHOW*/SW_HIDE;
    		si.lpDesktop = NULL;
    
    		PROCESS_INFORMATION   ProcessInformation;
    		ZeroMemory(&ProcessInformation, sizeof(ProcessInformation));
    		if (CreateProcess(filePath, (LPTSTR)text.c_str(), NULL, NULL, FALSE,/*CREATE_NEW_CONSOLE*/0, NULL, NULL, &si, &ProcessInformation))
    		{
    			WaitForSingleObject(ProcessInformation.hProcess, INFINITE);
    			::CloseHandle(ProcessInformation.hThread);
    			::CloseHandle(ProcessInformation.hProcess);
    		}
    	}
    	else
    	{
    		if (!m_pISpVoice)
    			return false;
    
    		// 开始进行朗读
    		BSTR content = _com_util::ConvertStringToBSTR(text.c_str());
    		HRESULT hr = m_pISpVoice->Speak(content, SPF_ASYNC, NULL);
    		SysFreeString(content);
    	}
    	return true;
    }

    这里做了两部分工作:

    (1)播放文本

    我们使用的是语音播放COM库ISpObjectToken实现的,该组件初始化如下:

    bool CTtsInstance::Init()
    {
    	// 初始化COM组件
    	if(FAILED(::CoInitialize(NULL)))
    		return false;
    
    	if(FAILED(m_pISpVoice.CoCreateInstance(CLSID_SpVoice)))
    		return false;
    
    	// 枚举所有语音Token
    	CComPtr<IEnumSpObjectTokens> cpEnum;
    	if(FAILED(SpEnumTokens(SPCAT_VOICES, L"", L"", &cpEnum)))
    		return false;
    	
    	ISpObjectToken* pToken = NULL;
    	while (cpEnum->Next(1, &pToken, NULL) == S_OK)
    	{
    		CSpDynamicString dstrDesc;
    		HRESULT hr = SpGetDescription(pToken, &dstrDesc);
    		if (SUCCEEDED(hr))
    		{
    			m_vecISpToken.push_back(pToken);
    		}
    	}
    
    	SetVoice(2052);
    
    	return true;
    }

    播放的时候我们只需要调用Speak接口即可,注意因为用的是COM组件,所以字符串也需要转换为COM的BSTR字符串!

    (2)64bit系统兼容

    因为我的程序一般都做了32bit和64bit的windows程序(包括所有dll库),经过测试发现64bit系统是调用COM库的,但是为了兼容其他的64bit库和app调用,我也必须兼容64bit的应用,我想到的好的办法是:本地调用。  

     

    既然系统仅仅支持32bit调用,那么64bit的dll封装只需要调用32bit的库就可以了,但是64bit的dll是无法调用32bit的dll的,但是可以通过进程方式调用,所以我又将该库封装成了一个32bit的exe,然后64bit的dll调用32bit的exe。该调用如下:  

    		TCHAR filePath[MAX_PATH] = { 0 };
    		GetModuleFileName(NULL, filePath, MAX_PATH);
    		_tcsrchr(filePath, _T('\\'))[1] = _T('\0');
    		_tcscat(filePath, _T("tts.exe"));
    
    		if (-1 == _taccess(filePath, 0))
    			return false;
    
    		STARTUPINFO   si = { 0 };
    		ZeroMemory(&si, sizeof(si));
    		si.cb = sizeof(si);
    		si.dwFlags = /*STARTF_USESHOWWINDOW*/0;
    		si.wShowWindow = /*SW_SHOW*/SW_HIDE;
    		si.lpDesktop = NULL;
    
    		PROCESS_INFORMATION   ProcessInformation;
    		ZeroMemory(&ProcessInformation, sizeof(ProcessInformation));
    		if (CreateProcess(filePath, (LPTSTR)text.c_str(), NULL, NULL, FALSE,/*CREATE_NEW_CONSOLE*/0, NULL, NULL, &si, &ProcessInformation))
    		{
    			WaitForSingleObject(ProcessInformation.hProcess, INFINITE);
    			::CloseHandle(ProcessInformation.hThread);
    			::CloseHandle(ProcessInformation.hProcess);
    		}

    通过查找本地的tts.exe文件进行远程调用并传递参数给exe即可。

     

    二、测试示例

    测试实例代码如下:

    int _tmain(int argc, _TCHAR* argv[])
    {
    	if(!TTS_Init()){
    		printf("初始化语音引擎失败!\n");
    	}
    
    	while (true)
    	{
    		TTS_Speak("尊敬的李先生,早上好!", 0);
    		printf("尊敬的李先生,早上好!\n");
    		Sleep(5000);
    	}
    
    	TTS_UnInit();
    
    	return 0;
    }
    

     

    (1)32bit的程序测试如下

    可以看到播放正常!

    (2)64bit程序测试如下

    可以看到64bit的dll被调用后播放也依然正常,只不过通过进程调用方式耗时稍微长一点,不过也只能通过这种方式兼容了。

     

    三、注意问题

    不同机器测试可以发现,阉割版本的win7是没有自带语音库的,所有初始化语音COM组件正常,所以我们需要修复语音库,这里需要32bit和64bit的语音修复库,另外也可以安装自己喜欢的语音播放库(我的是男士音,不好辨识!)

     

     

    源码获取、合作、技术交流请获取如下联系方式:  
    QQ交流群:961179337  
     

    微信账号:lixiang6153  
    公众号:IT技术快餐  
    电子邮箱:lixx2048@163.com  

    展开全文
  • Windows TTS语音阅读

    2019-03-07 10:40:19
    Windows TTS语音阅读
  • 微软TTS语音引擎提供了Windows Speech SDK开发包供编程者使用。Windows Speech SDK包含语音合成SS引擎和语音识别SR引擎两种,语音合成引擎用于将文字转换成语音输出,语音识别引擎用于识别语音命令。
  • 用C#开发的一个语音朗读程序,使用windows speech 5.1技术
  • TTS语音播报服务及调试程序(32bit),适用于Window7Windows8.1,Windows10。部署及使用方法详见博客文章:
  • 1-tts.rar系统语音

    2021-10-25 10:37:28
    Windows系统语音
  • PB6.5调用微软TTS5.1语音引擎(中文),实现字符串的语音播放。有事例代码,可以在PB6.5下面测试运行。安装好 微软TTS5.1语音引擎(中文)后,在控制面板-》语音 设置播放的男女声音。
  • Windows系统TTS测试小工具,亲测可用 点击WindowsFormsApplication1输入内容即可语音播报,该工具仅是测试TTS是否可用
  • 微软晓晓朗读录音工具windows-文字转语音

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,127
精华内容 1,250
关键字:

windows7安装tts语音