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

System.IO.FileNotFoundExceptionHResult=0x8007007EMessage=检索 COM 类工厂中 CLSID 为 {D9F6EE60-58C9-458B-88E1-2F908FD7F87C} 的组件失败,原因是出现以下错误: 8007007e 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。Source=System.SpeechStackTrace:在 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-100sap.setProperty("Volume", new Variant(100));// 语音朗读速度 -10 到 +10sap.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包,可以直接调用:

像这样,运行后,就听到响亮的朗读声音了
有什么不到之处,欢迎大家下方留言,讨论

win7系统调用tts的语音朗读功能相关推荐

  1. 关于Google翻译和语音朗读功能无法正常使用的说明

    关于Google翻译和语音朗读功能无法正常使用的说明 2022年10月1日,Google突然停止了Google翻译在中国大陆的业务,不再向中国大陆区域提供翻译服务,官方给出的理由是"因为使用 ...

  2. html增加语音朗读功能,给wordpress主题添加上语音播放文章内容文本朗读功能

    摘要:大挖最近在淘wp主题的时候发现一款主题已经支持了语音朗读功能7b2,大挖一直关注的一些产品和运营网站也陆续上线了语音播放... 大挖最近在淘wp主题的时候发现一款主题已经支持了语音朗读功能7b2 ...

  3. 网页实现文字转语音朗读功能

    使用HTML5的Speech Synthesis API能简单实现语音合成,并进行播报,实现代码如下: <!DOCTYPE html> <html lang="en&quo ...

  4. android 朗读读屏幕,android语音朗读功能demo实现

    简单的文本语音朗读功能实现 实现这个功能主要用一个类,是TextToSpeech,废话不都少,直接上代码.总的来说效果一般,短语的停顿节奏不是很好. 界面很简单,一个Button ,一个EditVie ...

  5. python3语音朗读功能

    python3有一个开源库可以支持语音朗读,对中文和英文都有很好的支持 运行前需要下载VS 2019把C++环境配置好和pip install pyttsx3 import pyttsx3 engin ...

  6. 非常简单的语音朗读功能

    不知道大家有没有发现,在System.Speech.Synthesis命名空间下有一个SpeechSynthesizer类,它可以指定的文本内容进行语音朗读,而且,这个类用起来也严重简单,简单到什么程 ...

  7. 如何在Electron中打造实现语音合成播放,让Windows自带TTS助你实现离线流畅语音播报语音朗读功能

    使用Electron和Windows自带TTS进行语音合成播放 const path = require('path'); const { spawn } = require('child_proce ...

  8. C++实现TTS文字语音朗读Microsoft Speech SDK

    转自http://www.zhimax.com/article/vc/ttsvoice.html 一. TTS概述 随着语音技术的发展,微软也推出了相应的语音开发工具,即Microsoft Speec ...

  9. TTS(TextToSpeach)语音朗读实例

    2019独角兽企业重金招聘Python工程师标准>>> package cn.captain.texttospeach;import java.util.Locale; import ...

最新文章

  1. php怎么实现自动售货,PHP自动化售货发卡网源码+教程
  2. Python使用matplotlib可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组在一起、并根据点的相似性将它们组织成树状图链接起来(Dendrogram)
  3. 良心直播!看完你的Python入门基础就妥了!
  4. Tensorflow【实战Google深度学习框架】全连接神经网络以及可视化
  5. socket层内容详解二
  6. Ubuntu9.10下安装Thinkpad T400 R29无线网卡
  7. java电话计费系统_java 连接数据库开发的电话计费管理系统
  8. java巴特沃斯滤波器编程_巴特沃斯(Butterworth)滤波器 (1)
  9. mysql workbench画E-R图,并根据E-R生成sql(步骤超完整)
  10. 学习响应式BootStrap来写融职教育网站,Bootsrtap第八天轮播图js特效
  11. 数据结构-判断一棵树是否为二叉排序树
  12. 用ISAPI Filter设置HttpOnly属性
  13. 中文验证码识别 java_opencv Tesseract 验证码识别 文字识别
  14. [转载]java对cookie的操作
  15. ExecuteScalar的使用
  16. [转]关于管理的经典故事(员工激励)
  17. 【飘儿菜】-Matplotlib-绘制饼图
  18. ERP收付款的操作与设计--开源软件诞生22
  19. Netty源码解析(八)之Recycler
  20. xshell如何将Windows文件上传到linux

热门文章

  1. 智能操作外卖订单 聚归客V2.0平台多维赋能餐饮商户
  2. 人工智能语言,我们的骄傲
  3. ccsp2018游记
  4. #机器学习 Micro-F1和Macro-F1详解
  5. 黑夜给了我黑色眼睛,我却用它来寻找创维
  6. ajaxfileupload IE10 拒绝访问
  7. 蓝桥杯C51(试题内容学习)
  8. 48亿卖给苏宁!又一全球巨头败走中国
  9. 计蒜客 41408 Texas hold‘em Poker 模拟
  10. try、catch、finally