主题 : 利用PowerShell设置Cortana朗读小说
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 604963
威望: 528524 点
无痕币: 3089 WHB
贡献值: 0 点
在线时间: 61670(时)
注册时间: 2008-12-25
最后登录: 2024-03-28

0 利用PowerShell设置Cortana朗读小说

Cortana(中文名:微软小娜)是微软发布的全球第一款个人智能助理。它“能够了解用户的喜好和习惯”,“帮助用户进行日程安排、问题回答等”。微软小娜自从发布以来就深受用户喜爱,特别是它甜美的声音,更是吸引了众多粉丝,我也是众多粉丝之一。

图1:Cortana
可惜的是,微软小娜发布以来只能以用户助手的身份出现在电脑和手机上,能做的事情不是太多,比如我一直就非常喜欢让小娜把小说朗读给我听,但现实的残酷的,小娜虽然近在咫尺,却如远在天边的仙子一样,让她为我朗读小说可望而不可及。幸运的是,在查阅了大量的资料后,我终于找到了一种方法让她朗读文本的方法了,小娜这美丽的天仙终于下凡了。

图2:来自微软小娜的问候
不敢藏私,现在我把方法分享给广大IT之家网友,祭出PowerShell大法,把下面的代码复制为.ps1文件保存好,打开PowerShell(管理员),把执行.ps1文件。当然也可以复制之后直接执行命令,都是一样的效果。
$TTS1 = "HKLM:\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_zhCN_HongyuM"
$TTS1ATTRIB = "HKLM:\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_zhCN_HongyuM\Attributes"
$TTS2 = "HKLM:\SOFTWARE\Microsoft\Speech\Voices\Tokens\MSTTS_V110_zhCN_HongyuM"
$TTS2ATTRIB = "HKLM:\SOFTWARE\Microsoft\Speech\Voices\Tokens\MSTTS_V110_zhCN_HongyuM\Attributes"
New-Item -Path $TTS1,$TTS2,$TTS1ATTRIB,$TTS2ATTRIB
New-ItemProperty -Path $TTS1,$TTS2 -Name "(default)" -PropertyType string -Value "Microsoft Hongyu Mobile - Chinese (Simplified, PRC)"
New-ItemProperty -Path $TTS1,$TTS2 -Name LangDataPath -PropertyType string -Value "%windir%\\Speech_OneCore\\Engines\\TTS\\zh-CN\\MSTTSLoczhCN.dat"
New-ItemProperty -Path $TTS1,$TTS2 -Name LangUpdateDataDirectory -PropertyType string -Value "%SystemDrive%\\Data\\SharedData\\Speech_OneCore\\Engines\\TTS\\zh-CN"
New-ItemProperty -Path $TTS1,$TTS2 -Name VoicePath -PropertyType string -Value "%windir%\\Speech_OneCore\\Engines\\TTS\\zh-CN\\M2052Hongyu"
New-ItemProperty -Path $TTS1,$TTS2 -Name VoiceUpdateDataDirectory -PropertyType string -Value "%SystemDrive%\\Data\\SharedData\\Speech_OneCore\\Engines\\TTS\\zh-CN"
New-ItemProperty -Path $TTS1,$TTS2 -Name 804 -PropertyType string -Value "Microsoft Hongyu Mobile - Chinese (Simplified, PRC)"
New-ItemProperty -Path $TTS1,$TTS2 -Name CLSID -PropertyType string -Value "{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"
New-ItemProperty -Path $TTS1ATTRIB,$TTS2ATTRIB -Name Version -PropertyType string -Value "11.0"
New-ItemProperty -Path $TTS1ATTRIB,$TTS2ATTRIB -Name Language -PropertyType string -Value "804"
New-ItemProperty -Path $TTS1ATTRIB,$TTS2ATTRIB -Name Gender -PropertyType string -Value "Female"
New-ItemProperty -Path $TTS1ATTRIB,$TTS2ATTRIB -Name Age -PropertyType string -Value "Adult"
New-ItemProperty -Path $TTS1ATTRIB,$TTS2ATTRIB -Name DataVersion -PropertyType string -Value "11.0.2013.1022"
New-ItemProperty -Path $TTS1ATTRIB,$TTS2ATTRIB -Name SharedPronunciation -PropertyType string -Value ""
New-ItemProperty -Path $TTS1ATTRIB,$TTS2ATTRIB -Name Name -PropertyType string -Value "Microsoft Hongyu Mobile"
New-ItemProperty -Path $TTS1ATTRIB,$TTS2ATTRIB -Name Vendor -PropertyType string -Value "Microsoft"
New-ItemProperty -Path $TTS1ATTRIB,$TTS2ATTRIB -Name PersonalAssistant -PropertyType string -Value "1"
接下来打开“控制面板”,找到“语音识别”,点击左侧窗口中的“文本到语音转换”,在“语音选择”框中选择“Microsoft Hongyu Mobile - Chinese (Simplified, PRC)”,然后单击确定按钮,你就可以让微软小娜为你阅读文本了。阅读文本内容可以使用带有文本阅读功能的文本编辑器,或者使用专门的小说阅读器,大家自己选一个自己喜欢的就行了。

图3:选择小娜的语音
下面贴一段用PowerShell阅读小说的代码:
$Read = Read-Host -Prompt "把小说拖到此处并回车开始朗读"
$Voice = New-Object -ComObject SAPI.SpVoice
$Voice.Speak($Read,5)
Read-Host-Prompt "回车退出朗读"
同样保存为.ps1文件,然后在.ps1文件上右键,选择“使用“使用PowerShell运行”,之后把txt小说拖到PowerShell窗口中,回车,小娜就会自动为你朗读小说了,再次回车就会退出朗读,怎么样,很简单吧,去试试吧!

图4:使用小娜朗读小说
时也,世也,命也,运也,非吾之所以不能也!
级别: 七朵秋菊
UID: 2807
精华: 0
发帖: 2601
威望: 34893 点
无痕币: 36752 WHB
贡献值: 2 点
在线时间: 1050(时)
注册时间: 2007-12-04
最后登录: 2023-01-24

这个很有技术含量!谢谢分享!
级别: 十方秋水

UID: 26730
精华: 0
发帖: 64722
威望: 148036 点
无痕币: 183 WHB
贡献值: 0 点
在线时间: 11530(时)
注册时间: 2008-05-03
最后登录: 2018-05-16

多谢分享了
级别: 九滴秋露
UID: 2840
精华: 0
发帖: 32711
威望: 121594 点
无痕币: 123287 WHB
贡献值: 0 点
在线时间: 27244(时)
注册时间: 2007-12-04
最后登录: 2024-03-20

这个了解一下
Total 0.039584(s) query 4, Time now is:03-28 21:00, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛