我键入时手腕疼痛,我想开始使用语音识别编写SQL语句,存储过程和视图.
是.SQL非常适合语音识别(因为它可以是一种编程语言),因为它的词汇量和句子结构有限.除了格式化SQL以使其看起来不错之外,我可以比输入更快地指示它.但是,口述代码不适合所有人.一开始可能会非常令人沮丧.尝试这种并坚持下去的人可能就是那些别无选择的人.
我使用Dragon NaturallySpeaking 10 Professional.Professional版本具有创建这样的自定义词汇表所需的工具.版本9也应该可以正常工作.这是昂贵的,所以如果可能的话,尽量让你工作的公司付钱.获得一个不错的耳机麦克风.NaturallySpeaking附带的那个不够好(但你可能想先尝试一下,看看它是否适合你).KnowBrainer是麦克风推荐的好地方.
2009-01-05更新:我在SQL Server Management Studio中添加了以下针对口述的提示.
2012-01-04更新:我一直在跟踪微软的WSR已经有一段时间了,我希望可以添加工具来轻松创建一个完全自定义的词汇表,就像我在本教程中使用NaturallySpeaking一样.不幸的是,这似乎只能通过API(SAPI)来完成.我没有时间编写该代码,因此我将继续使用NaturallySpeaking编写代码,直到出现更好的代码.
制备口述" 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%'
被称为"开放式单引号百分号符号sierra迈克印度探戈酒店百分号关闭 - 单引号[PAUSE]复合物 - 那".使用一致的表别名和始终在它们之前的字段有助于提高准确性,因为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
变成'ASP'.保持这个列表.如果您决定为其他编程语言创建词汇表,那么如果您是数据库开发人员,则可能会包含这些词汇.
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中开始选择文本的命令.因此,在口述之前你会想说"Cap",所以NaturallySpeaking不会混淆.而已.好吧,至少足以让你入门.根据需要修改单词列表,发音和单词属性.您还可以采取其他措施来提高准确性和速度.正如我想到的那样,我将编辑这篇文章并在此处添加它们.
如果您指定SQL Server Management Studio,您可能会发现性能非常低.请尝试以下方法来缓解此问题:
关闭所有工具栏(创建宏以访问常用功能)
保持尽可能少的窗格和文档
一次只打开一个数据库
完成后隐藏搜索结果(Ctrl + R)
如果一切都失败了,请关闭并重新打开管理工作室
在编辑窗口中显示制表位,以便更轻松地格式化SQL.
SQL Server 2000中的查询分析器没有这些问题.