找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: lixiaodaoaaa

[其他] 让批处理发声--- 朗读单词

[复制链接]
发表于 2023-9-25 21:38:38 | 显示全部楼层

可先试代码A,若通过, 表明win10的默认mshta引擎ie11已经关闭了vbs支持,故须显式设置mshta引擎回滚到ie10。若还不行,再试代码B,mshta引擎从ie11开始仅支持js了。

  1. ::A》
  2. @echo off
  3. set "str=123456789"
  4. mshta vbscript:"<meta http-equiv=x-ua-compatible content=IE=10><script type=text/vbscript>createobject(""sapi.spvoice"").speak(""%str%"")(close)</script>"
  5. pause &exit/b

  6. ::B》
  7. @echo off
  8. set "str=123456789"
  9. mshta "javascript:close(new ActiveXObject('sapi.spvoice').speak('%str%'))"
  10. pause &exit/b
复制代码

评分

参与人数 1技术 +1 收起 理由
77七 + 1 乐于助人

查看全部评分

发表于 2023-9-25 21:44:06 | 显示全部楼层
  1. Set file = CreateObject("Scripting.FileSystemObject")
  2. if file.FileExists("内容.txt") then
  3. set txtfile=file.opentextfile("内容.txt",1)
  4. while NOT txtfile.atendofstream
  5. CreateObject("SAPI.SpVoice").Speak txtfile.ReadLine
  6. wend
  7. txtfile.close
  8. msgbox ("完")
  9. Else
  10. msgbox("是直接读内容.txt里的文字内容,没找到内容.txt")
  11. End If
复制代码
我不懂vbs,这是几年前收集的。

评分

参与人数 1技术 +1 收起 理由
77七 + 1 乐于助人

查看全部评分

发表于 2023-9-25 22:08:46 | 显示全部楼层
回复 16# aloha20200628


   a报错





b报错


发表于 2023-9-25 22:10:15 | 显示全部楼层
回复 17# hlzj88


   和14楼代码报错相同
发表于 2023-9-25 22:36:30 | 显示全部楼层
回复 15# 77七


看看路径
    %SystemRoot%\System32\Speech\
下有没有sapi的相关的组件文件

Common\sapi.dll
Engines\TTS\MSTTSEngine.dll

评分

参与人数 1技术 +1 收起 理由
77七 + 1 乐于助人

查看全部评分

发表于 2023-9-25 22:39:42 | 显示全部楼层
本帖最后由 aloha20200628 于 2023-9-25 22:44 编辑

回复 18# 77七

本人的测试环境是win8.1简中系统,提供的A/B代码均予通过。
还有一个简单的测试建议》离开mshta脚本,仅分别测试js脚本,可否通过...
1.js

  1. new ActiveXObject('sapi.spvoice').speak('123456789');
复制代码
发表于 2023-9-25 22:43:43 | 显示全部楼层
回复 20# Five66


   只有一个类似的文件,sapi_onecore.dll。
发表于 2023-9-25 22:47:12 | 显示全部楼层
回复 21# aloha20200628


   和14楼、15楼报错相同。
发表于 2023-9-25 23:21:03 | 显示全部楼层
又在win10.22H2简中系统测试了 A/B 代码和 1.js 脚本,均予通过。
两个系统均有 "C:\Windows\System32\Speech\Common\sapi.dll"。
— 仅供参考。
发表于 2023-9-25 23:33:01 | 显示全部楼层
感谢 Five66 aloha20200628 hlzj88 三位大佬帮助!原因已明了,我准备修复sapi.dll缺失的问题。
发表于 2023-9-26 00:15:01 | 显示全部楼层
本帖最后由 Five66 于 2023-9-26 00:23 编辑

回复 25# 77七


    感觉像是系统版本的差异,对应的名字后面好像都加了个_onecore(但是实际使用的还是原版名字后面没有_onecore的,又或者实际使用的名字如sapi.spvoice也跟着变了)
发表于 2023-9-26 01:23:12 | 显示全部楼层
回复 26# Five66


   问了两次ai,答案不一样,第一次忘了复制了,大概说 sapi_onecore.dll 是为uwp应用设计的
第二次
  1. sapi_onecore.dll和sapi.dll是Windows操作系统中与语音识别和语音合成相关的动态链接库(DLL)文件。它们之间的区别在于:

  2. Windows版本:sapi_onecore.dll是为Windows 10及更高版本设计的,而sapi.dll适用于较早的Windows版本,例如Windows 7、Windows 8等。

  3. 功能支持:sapi_onecore.dll提供了一种新的API接口,称为OneCore Speech API,它是基于Windows 10 OneCore技术栈开发的。这个API接口具有更好的性能和更多的功能特性,如噪声抑制、自适应麦克风阵列处理等。相比之下,sapi.dll的功能相对较少,不支持一些新的语音识别和语音合成特性。

  4. 兼容性:由于sapi_onecore.dll是为Windows 10及更高版本优化的,因此它可能不兼容较旧的Windows版本。而sapi.dll则可以在较旧的Windows版本上正常运行。

  5. 总之,sapi_onecore.dll和sapi.dll在功能特性、兼容性方面存在差异。如果你使用的是Windows 10及更高版本,并且需要利用最新的语音识别和语音合成功能,建议使用sapi_onecore.dll。如果你使用的是较旧的Windows版本,sapi.dll可能是更适合的选择。
复制代码


我尝试了网上的修复方法,没有成功。打算找段python代码,调用python,有个库,我今天没安装好,明天再慢慢尝试下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:19 , Processed in 0.020263 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表