当我在打字时手腕会疼痛,因此我希望开始使用语音识别来编写SQL语句、存储过程和视图。
当我在打字时手腕会疼痛,因此我希望开始使用语音识别来编写SQL语句、存储过程和视图。
如果要口述"SELECT PT_17, PT_28, PT_29 FROM HIK.dbo.PATINFO
",那将会很麻烦,但我想这是可能的。你需要设置很多发音,因为NaturallySpeaking不知道"PT_17
"应该如何发音。以下方式更适合口述:
SELECT Patient.FirstName, Patient.MiddleName, Patient.LastName FROM Claim.dbo.Patient AS Patient WHERE Patient.LastName LIKE '%smith%'
我切换到我的TSQL词汇来口述上述语句。一直到LIKE
语句的所有内容都按原样说出。'%smith%'
被口述为“开单引号百分号塞拉迈克印度塔戈酒店百分号闭单引号[暂停]连接词”。使用一致的表别名并始终在字段之前加上它们有助于提高准确性,因为NaturallySpeaking会统计一个单词在另一个单词附近出现的频率。
每行放一个单词。您可以选择在单词后面跟着反斜杠(\)和发音。NaturallySpeaking使用一个小型备用词典来确定您添加到词汇表中的单词的发音,因此它没有问题确定SELECT
、FROM
和WHERE
的发音。它有时可以确定复合词,并且对于像XACT_ABORT
这样的东西,它会尽最大努力猜测。我会为这些情况提供发音。您使用的数据库将确定列表包含哪些单词 - 请检查文档以获取关键字列表。您的列表将类似于以下内容,但更长。
SELECT
WHERE
FROM
XACT_ABORT\exact-abort
MAXDOP
NOLOCK\no-lock
LEN
RETURNS
CURSOR
MONEY
还要添加这些单词
\New-Line
\New-Paragraph
\All-Caps
\All-Caps-On
\All-Caps-Off
\Cap
\Caps-On
\Caps-Off
\No-Caps
\No-Caps-On
\No-Caps-Off
\No-Space
\No-Space-On
\No-Space-Off
\space-bar
\tab-key
a\alpha
b\bravo
c\charlie
d\delta
e\echo
f\foxtrot
g\golf
h\hotel
i\india
j\juliet
k\kilo
l\lima
m\mike
n\november
o\oscar
p\papa
q\quebec
r\romeo
s\sierra
t\tango
u\uniform
v\victor
w\whiskey
x\xray
y\yankee
z\zulu
PM
AM
one
two
three
four
five
six
seven
eight
nine
ten
eleven
twelve
thirteen
fourteen
fifteen
sixteen
seventeen
eighteen
nineteen
twenty
thirty
fourty
fifty
sixty
seventy
eighty
ninety
hundred
thousand
million
billion
trillion
这是我在SQL Server中的做法:
SELECT DISTINCT * FROM
(
SELECT DISTINCT [name] FROM Database1.[dbo].[sysobjects] WHERE xtype not IN ('F', 'S', 'PK', 'D', 'UQ')
UNION
SELECT DISTINCT column_name AS [name] FROM Database1.information_schema.[columns]
UNION
SELECT DISTINCT [name] FROM Database2.[dbo].[sysobjects] WHERE xtype not IN ('F', 'S', 'PK', 'D', 'UQ')
UNION
SELECT DISTINCT column_name AS [name] FROM Database2.information_schema.[columns]
...
) AS UnionTable
将结果复制并粘贴到文本文件中。
使用与上面列出的相同的格式进行发音。创建这些的简单方法是使用正则表达式搜索和替换功能。在SQL Server Management Studio或Visual Studio中,以下(非标准)正则表达式将为两个单词的混合大小写名称创建发音。
Find: ^{[A-Z][a-z]+}{[A-Z][a-z]+}$
Replace: \0\\\1-\2
请检查发音并清理任何看起来不对的东西。对于缩写词,ASP
变成 `A.S.P.'。也要保留这个列表。如果您决定为其他编程语言创建词汇表,则可能会包括这些单词,如果您是数据库开发人员。
SQL Server:
SELECT * FROM Database1.dbo.[View] UNION SELECT * FROM Database1.dbo.Routine UNION
SELECT * FROM Database2.dbo.[View] UNION SELECT * FROM Database2.dbo.Routine
...
ORDER BY [Name]
去除注释和字面字符串。正则表达式搜索和替换对此非常有效。
安装NaturallySpeaking并创建一个新用户(如果尚未创建)。
点击"NaturallySpeaking | 管理词汇表..."。点击"新建"。给词汇表取一个适当的名称,例如"SQL"。基于"基本通用-空口述"。当它询问您是否要扫描电子邮件或文档时,请单击取消。
点击"单词 | 导入"。添加您创建的两个单词列表并导入它们。
点击"工具 | 准确性中心"。点击"从您的文档中添加单词到词汇表"。使用默认设置,并选择包含您的代码的文档。
您可能想要口述的第一件事是SELECT语句。请记住,在NaturallySpeaking中,SELECT是用于开始选择文本的命令。因此,您需要在口述它之前说"Cap",以便NaturallySpeaking不会混淆。就这样。至少足以让您开始。根据需要修改您的单词列表、发音和单词属性。还有其他一些可以提高准确性和口述速度的方法。当我想到它们时,我将编辑此帖子并在此处添加它们。
如果您在SQL Server Management Studio中口述,可能会注意到非常慢的性能。尝试以下方法以缓解这种情况:
SQL Server 2000的查询分析器没有这些问题。
最近我发布了VoiceCode,这是我为解决自己的RSI问题所创建的一种语音编码解决方案。
我用它来在Sublime Text和Xcode中编码,也用于一般的电脑使用。它适用于任何语言包括SQL。这个解决方案的优点在于,所有命令都可以链接成“命令短语”,因此您不必像其他语音命令解决方案那样在每个单独的命令之间停顿。
它内置了对所有标准变量名称格式(蛇形命名、驼峰式命名等)的支持,内置了对每个键盘快捷键的所有排列组合的命令(即command-shift-5、command-option-shift-T等),有光标移动命令、应用程序切换命令、窗口切换命令、符号组合命令如"=>", "||", ">="等等。还有更多的命令。而且添加您自己的自定义命令也非常容易。