------【第一章 前言】------

win7,及以上版本中,是自带语音库的,系统自带一套女声中文库,一套女声英文库。
用powershell调用,从而发音,制作报警系统。是一件太简单的事情,只需要几行代码。
$sapi = New-Object -COM Sapi.SpVoice
$sapi.Speak("Hello World!")
$sapi.Speak("你好!我是计算机合成语音,能说中文了!")

Baden,powershell传教士,共同 原创文章。始于 2018-01-26 允许转载,但必须保留名字和出处,否则追究法律责任

------【第二章 正文】------

最近重温倩女幽魂,发现姥姥自带了【男女语音随机切换,说话系统】^_^。我们用powershell也很容易实现。

1 win10-16299二周年版,自带3套语音库(中文男,中文女,英文女),也可以自己安装。
不过,控制面板中默认列出2套,需要修复注册表后,才能列出“男康康”。
导入reg,修复注册表:( 同样 适用于  win10 17663.1 三周年版 rs5 )

  1. Windows Registry Editor Version 5.00
  2.  
  3. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_KangKang_11.0]
  4. "804"="Microsoft Kangkang - Chinese (Simplified, PRC)"
  5. "CLSID"="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"
  6. @="Microsoft Kangkang - Chinese (Simplified, PRC)"
  7. "LangDataPath"=hex(2):25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,53,\
  8. 00,70,00,65,00,65,00,63,00,68,00,5f,00,4f,00,6e,00,65,00,43,00,6f,00,72,00,\
  9. 65,00,5c,00,45,00,6e,00,67,00,69,00,6e,00,65,00,73,00,5c,00,54,00,54,00,53,\
  10. 00,5c,00,7a,00,68,00,2d,00,43,00,4e,00,5c,00,4d,00,53,00,54,00,54,00,53,00,\
  11. 4c,00,6f,00,63,00,7a,00,68,00,43,00,4e,00,2e,00,64,00,61,00,74,00,00,00
  12. "VoicePath"=hex(2):25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,53,00,\
  13. 70,00,65,00,65,00,63,00,68,00,5f,00,4f,00,6e,00,65,00,43,00,6f,00,72,00,65,\
  14. 00,5c,00,45,00,6e,00,67,00,69,00,6e,00,65,00,73,00,5c,00,54,00,54,00,53,00,\
  15. 5c,00,7a,00,68,00,2d,00,43,00,4e,00,5c,00,4d,00,32,00,30,00,35,00,32,00,4b,\
  16. 00,61,00,6e,00,67,00,6b,00,61,00,6e,00,67,00,00,00
  17.  
  18. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_KangKang_11.0\Attributes]
  19. "Age"="Adult"
  20. "Gender"="Male"
  21. "Language"="804"
  22. "Name"="Microsoft Kangkang"
  23. "SharedPronunciation"=""
  24. "Vendor"="Microsoft"
  25. "Version"="11.0"
  26. "DataVersion"="11.0.2013.1022"

2 编写脚本,把传入的字符串,以空格,英文逗号句号叹号等分割。
3 调用声音api,【每次!】说完半句话,(顺序)切换一下语音库。
这里面的核心内容,是切换语音库。不说废话,直接上脚本。

  1. if (-not $args[0])
  2. {
  3. Write-Warning '用法:'
  4. Write-Warning 'll姥姥语音.ps1 “我要把你嫁给,黑山老妖!我要你打碎金塔,在枉死城陪我我我我”'
  5. $args = @(“我要把你嫁给,黑山老妖!我要你打碎金塔,在枉死城陪我我我我”)
  6. }
  7.  
  8. Add-Type -AssemblyName System.Speech
  9. $sy = [System.Speech.Synthesis.SpeechSynthesizer]::new()
  10. $sy.SelectVoiceByHints([System.Speech.Synthesis.VoiceGender]::Female)
  11. $ = $true
  12. $分隔符 = "`t,。,.! "
  13.  
  14. $n段文字 = $args[0].split($分隔符)
  15. foreach ($1段文字 in $n段文字)
  16. {
  17. $sy.Speak($1段文字)
  18.  
  19. if ($ -eq $true)
  20. {
  21. $sy.SelectVoiceByHints([System.Speech.Synthesis.VoiceGender]::Male)
  22. $ = $false
  23. }
  24. else
  25. {
  26. $sy.SelectVoiceByHints([System.Speech.Synthesis.VoiceGender]::Female)
  27. $ = $true
  28. }
  29. }
  30. $sy.Dispose()

win10-16299 测试通过。

用法:
ll姥姥语音.ps1    “我要把你嫁给,黑山老妖!我要你打碎金塔,在枉死城陪我我我我”
ll姥姥语音.ps1    “你姥姥我 english 也 very good”

问:linux上如何使用?
答:
linux上通过b/s,或ssh客户端等,向win远程传递事件id。
然后在win上查表id,并读对应的字符串即可。
如1001,代表“磁盘满了”。

参考资料:
https://msdn.microsoft.com/zh-cn/library/system.speech.synthesis(v=vs.110).aspx

用powershell实现:“倩女幽魂姥姥”版《语音报警系统》的更多相关文章

  1. powershell《语音报警系统》

    用powershell实现:“倩女幽魂姥姥”版<语音报警系统> ------[第一章 前言]------ win7,及以上版本中,是自带语音库的,系统自带一套女声中文库,一套女声英文库.用 ...

  2. 第七篇:wed版语音机器人

    wed版语音机器人: GitHub项目地址:https://github.com/Yang915/WebToy 特别说明:该项目在本机测试,通过浏览器调用系统麦克风(https请求),实际环境在Fir ...

  3. Intouch/ifix语音报警系统制作(3-利用自定义过程和函数,重构先前版本)

    在语音模块嵌入了半年左右的时间,经过实际使用发现,代码冗余,重复太多,维护较难,新增也不易,故而对整个框架进行整理,实现简单添加,维护容易的目的. 1.代码优化 1.1构建自定义过程 name 参数代 ...

  4. Intouch/ifix语音报警系统制作(2)

    在我的先前一篇关于语音报警系统制作的文章中,阐述了如何通过标签组来获得@name@的详细内容,以通过这种方式来进行详细的设备故障播报.经过一段时间的试运行,发现使用标签组的方式会产生较大的耦合,(即当 ...

  5. h5语音录制及上传(Java版语音聊天系统)

    Since Chrome version 47, Voice Recording works only on HTTPS sites 目前基于webikit(谷歌之类的webikit)和Gecko(F ...

  6. 使用百度ai接口加图灵机器人完成简单web版语音对话

    app文件 from flask import Flask, request, render_template, jsonify, send_file from uuid import uuid4 i ...

  7. Intouch/ifix语音报警系统制作(4-自动发送邮件提醒)

    在近期项目完成后,有遇到情况:类似于语音报警后,中控室人员未及时报告给我们造成了事件的危害升级,以及造成很不好的影响.针对这个情况特此添加语音报警后,自动发送邮件提醒,完善现有的报警机制. 1.函数编 ...

  8. linux版powershell安装教程(.net core版)

    powershell 传教士 原创文章 始于2016-12-20,2017-03-15改.文章版本目前博客园为最新版. 允许转载,但必须保留名字和出处,否则追究法律责任 问:powershell二进制 ...

  9. 3D语音天气球(源码分享)——在Unity中使用Android语音服务

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 开篇废话: 这个项目准备分四部分介绍: 一:创建可旋转的"3D球":3 ...

随机推荐

  1. EMMC与nand flash的区别【转】

    1.NAND Flash 是一种存储介质,要在上面读写数据,外部要加主控和电路设计. 2.eMMC是NAND flash+主控IC ,对外的接口协议与SD.TF卡类似:对厂家而言简化了电路设计,降低了 ...

  2. 关于soapui简介与入门

    SoapUI简介 SoapUI是一个开源测试工具,通过soap/http来检查.调用.实现Web Service的功能/负载/符合性测试.该工具既可作为一个单独的测试软件使用,也可利用插件集成到Ecl ...

  3. java_web学习(三) eclipse_jsp学习

    1.首先打开eclipse,新建一个Dynamac web project项目文件 2.在WebContent单击右键创建JSP File 3.过程 4.简单的jsp代码 运行结果: 5.导出war文 ...

  4. burpsuite截断上传webshell

    1.先设置好代理127.0.0.1 8080 2.开启截断模式 3.上传文件会被burp截断 4.在hex下找到你上传的webshell的16进制编码 5.把.后面的源码改为00 点击forward上 ...

  5. 让两个数x,y一直保持互质的模版

    int gcd(int x,int y) { )return x; else return gcd(y,x%y); }

  6. hackerrank [Week of Code 33] Bonnie and Clyde

    任意门 题意:给一个图,每次询问给三个点a,b,c,问是否存在一条从a到c,一条b到c的路径除c外无交点. 双连通分量缩点建出圆方树是必须的,然后我们需要判断c是否在a到b的路径上,或者c的某个相邻的 ...

  7. codeforces 767A Snacktower(模拟)

    A. Snacktower time limit per test:2 seconds memory limit per test:256 megabytes input:standard input ...

  8. 在windows下详解:大端对齐和小端对齐

    计算机的内存最小单位是什么?是BYTE,是字节.一个大于BYTE的数据类型在内存中存放的时候要有先后顺序. 高内存地址放整数的高位,低内存地址放整数的低位,这种方式叫倒着放,术语叫小端对齐.电脑X86 ...

  9. 在echarts3中使用字符云

    echarts2的官方API里是带有字符云的,但到了echarts3就被从官网上移除了,想要使用的话可以从github上下载: 下载地址:https://github.com/ecomfe/echar ...

  10. UEP-查询方式总结

    public void retrieve() { QueryParamList params = getQueryParam("dataWrap"); //获取页面上的参数,即查询 ...