因为要抄写大量的学习强国之类资料。反复抬头看电脑屏幕、低头于笔记本上抄写。
资料文本存于read.txt,遂写一段脚本用于朗读听写,自娱自乐。
分享到论坛,路过的朋友可以帮忙润色就更好了。- add-type -assemblyname system.speech
- $speaker=new-object system.speech.synthesis.speechsynthesizer
- $speaker.rate=-5
- $speaker.volume=100
- #添加类型,定义语音速率音量。
- function wait-key{
- #10秒内获取按键,根据按键决定重复朗读或者暂停或者快速跳到下一句。
- while($counter++ -lt 10){
- if($host.ui.rawui.keyavailable){
- $null=$key=$host.ui.rawui.readkey("noecho,includekeyup").character
- break
- }
- else{
- write-host $counter
- sleep -s 1
- }
- }
- return($key)
- }
- $txt=gc read.txt
- $txt.split(',。!;?')|%{
- $_
- $speaker.speak($_)
- if($_.length -lt 6){
- sleep -s 5
- #短句子,停顿5秒用于抄写
- }else{
- $key=wait-key
- #长句子,停顿10秒用于抄写。
- if($key){
- #10秒等待期间,按数字暂停,按点号跳过等待,其他键重复上一句。
- if($key -match '^\d$'){
- cmd /c pause
- }elseif($key -eq "."){
- $key
- }else{
- $speaker.speak($_)
- sleep -s 5
- }
- rv key
- }
- }
- }
复制代码
|