Contents
- 1 Acronym をナレーターに喋らせ、ファイルにする、の巻
- 1.1 やり方は親切にまとまってるサイトがあるよ
- 1.2 PowerShell にはまだまだ不慣れなので Python とコラボ
- 1.3 結果
- 1.3.1 TYVM
- 1.3.2 FYI
- 1.3.3 TMTT
- 1.3.4 ASAP
- 1.3.5 OIC
- 1.3.6 RTM
- 1.3.7 LOL
- 1.3.8 PTAL
- 1.3.9 ETA
- 1.3.10 NSFW
- 1.3.11 IMHO
- 1.3.12 OBTW
- 1.3.13 TAFN
- 1.3.14 AKA
- 1.3.15 TIA
- 1.3.16 IKR
- 1.3.17 FYA
- 1.3.18 IOW
- 1.3.19 TLDR
- 1.3.20 IIRC
- 1.3.21 PMFJI
- 1.3.22 WTG
- 1.3.23 ROTFL
- 1.3.24 FWIW
- 1.3.25 AFK
- 1.3.26 RSN
- 1.3.27 IMO
- 1.3.28 ICWUM
- 1.3.29 WRT
- 1.3.30 TTTT
- 1.3.31 ROFL
- 1.3.32 AWHF
- 1.3.33 OTOH
- 1.3.34 BTW
- 1.3.35 NRN
- 1.3.36 TTBOMK
- 1.3.37 AFAIK
- 1.3.38 TTYL
- 1.3.39 AFAICT
- 1.3.40 IIUC
- 1.3.41 HTH
- 1.3.42 POV
- 1.3.43 iff
- 1.3.44 WIP
- 1.3.45 LGTM
- 1.4 付記
Acronym をナレーターに喋らせ、ファイルにする、の巻
やり方は親切にまとまってるサイトがあるよ
PowerShell にはまだまだ不慣れなので Python とコラボ
やりたいことが遂行できりゃ、なんでもいいのです。先に、「Pythonが生成する PS1」のゴールイメージはこれ:
1 Add-Type -AssemblyName System.speech
2 $speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
3 $speak.Rate = -5 # from -10 to 10, default is zero.
4 $speak.SetOutputToWaveFile("c:\path\to\out\TYVM.mp3")
5 $speak.Speak("Thank You Very Much")
6 $speak.SetOutputToWaveFile("c:\path\to\out\FYI.mp3")
7 $speak.Speak("For Your Information")
8 # ...
9 $speak.Dispose()
ただの繰り返しね。ネタ元は「NVDAの「読み上げ辞書」と acronym」です。
で、この ps1 を、「NVDAの「読み上げ辞書」と acronym」で作った「default.dic」からその場で生成して、subprocess で powershell を呼び出す、と。
こんなです;
1 # -*- coding: utf-8 -*-
2 from os import path
3 import subprocess
4
5 d = {}
6 #
7 for line in open("default.dic", "rb").read().decode("utf-8-sig").split("\r\n"):
8 if line:
9 s = line.split("\t")
10 if "." not in s[0]:
11 d[s[0]] = s[1]
12 #
13 fn = "acro2speechwav.ps1"
14 fo = open(fn, "w")
15 fo.write("""\
16 Add-Type -AssemblyName System.speech
17 $speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
18 $speak.Rate = -5 # from -10 to 10, default is zero.
19 """)
20 # ---
21 for k in d:
22 fo.write("""\
23 $speak.SetOutputToWaveFile("{}.mp3")
24 $speak.Speak("{}")
25 """.format(path.join(path.abspath("."), k), d[k]))
26 # ---
27 fo.write("""\
28 $speak.Dispose()
29 """)
30 fo.close()
31 #
32 subprocess.call([
33 "C:/WINDOWS/SysWOW64/WindowsPowerShell/v1.0/powershell",
34 path.abspath(fn)])
ちょいと読みにくいかもな。
結果
TYVM
Thank You Very Much
FYI
For Your Information
TMTT
Too Much To Type
ASAP
As soon as possible
OIC
Oh, I See
RTM
Read the Manual
LOL
Laughing Out Loud
PTAL
Please take another look
ETA
Estimated time of arrival
NSFW
Not Suitable For Work
IMHO
In My Humble Opinion
OBTW
Oh, By The Way
TAFN
That’s All For Now
AKA
Also known as
TIA
Thanks In Advance
IKR
I know, right?
FYA
For your action
IOW
In Other Words
TLDR
Too long, didn’t read
IIRC
If I remember correctly
PMFJI
Pardon Me For Jumping In
WTG
Way To Go
ROTFL
Rolling on the floor laughing
FWIW
For What It’s Worth
AFK
Away From Keyboard
RSN
Real Soon Now
IMO
In My Opinion
ICWUM
I See What You Mean
WRT
With Regard to
TTTT
To Tell The Truth
ROFL
Rolling on the floor laughing
AWHF
Are We Having Fun?
OTOH
On The Other Hand
BTW
By the way
NRN
No Reply Necessary
TTBOMK
To The Best Of My Knowledge
AFAIK
As far as I know
TTYL
Talk To You Later
AFAICT
As far as I can tell
IIUC
If I understand correctly
HTH
Hope This Helps
POV
Point Of View
iff
if and only if
WIP
Work in progress
LGTM
Looks good to me
付記
日本語訳は自分で調べてくれぃ。
…つーか、自分用にそのうち固定ページ作ろうかとは思ってるけどね。間違いなく自分にとって便利になるはずだからさ。
もうひとつ。「default.dic」、手で作ったものを NVDA が読み込んで NVDA が保存すると、
- utf-8-sigになる
- どうやらただのタブ区切りではないみたい
となって、2つうまくいかなかった。以下2つ:
1 $speak.SetOutputToWaveFile("c:\Users\hhsprings\AppData\Roaming\nvda\speechDicts\FTW.mp3")
2 $speak.Speak("For the win 1 0")
3
4 $speak.SetOutputToWaveFile("c:\Users\hhsprings\AppData\Roaming\nvda\speechDicts\OMG.mp3")
5 $speak.Speak("Oh My God! 1")
手で書いたときは確かにちゃんとタブ区切りにしたつもりなんだけどなぁ?
ま、ここいらも、もうちっとまともなページに仕立てる際には解決しときますわ。
動くサンプルで学べるWindows PowerShellコマンド&スクリプティングガイド/五十嵐貴之【後払いOK】【2500円以上送料無料】
|