当前位置:  开发笔记 > 数据库 > 正文

我可以使用语音识别编写SQL吗?

如何解决《我可以使用语音识别编写SQL吗?》经验,为你挑选了1个好方法。

我键入时手腕疼痛,我想开始使用语音识别编写SQL语句,存储过程和视图.



1> Keith Walton..:

是.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会统计一个单词出现在另一个单词附近的频率.

创建SQL关键字的单词列表

在每一行上加一个字.您可以选择使用反斜杠(\)和发音跟随单词.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代码的文本文档(视图,过程等)

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".基于"基础通用 - 空口述".当它询问您是否要扫描您的电子邮件或文档时,请单击取消.

导入单词

单击"单词|导入".添加您创建的两个单词列表并导入它们.

适应写作风格

单击"工具|精度中心".单击"将文档中的单词添加到词汇表".使用默认设置,然后选择包含代码的文档.

尝试口述一些SQL

您可能想要指出的第一件事是选择陈述.请记住,SELECT是用于在NaturallySpeaking中开始选择文本的命令.因此,在口述之前你会想说"Cap",所以NaturallySpeaking不会混淆.而已.好吧,至少足以让你入门.根据需要修改单词列表,发音和单词属性.您还可以采取其他措施来提高准确性和速度.正如我想到的那样,我将编辑这篇文章并在此处添加它们.

指令进入SQL Server Management Studio的提示

如果您指定SQL Server Management Studio,您可能会发现性能非常低.请尝试以下方法来缓解此问题:

关闭所有工具栏(创建宏以访问常用功能)

保持尽可能少的窗格和文档

一次只打开一个数据库

完成后隐藏搜索结果(Ctrl + R)

如果一切都失败了,请关闭并重新打开管理工作室

在编辑窗口中显示制表位,以便更轻松地格式化SQL.

SQL Server 2000中的查询分析器没有这些问题.


这只是我想要走出去的信息.我遵循了SO准则:http://stackoverflow.com/questions/18557/how-does-stackoverflow-work-the-unofficial-faq#119658
如果他没有回答他自己的问题,我会更感动.在同一分钟,他问了这个问题.
非常明显地完成了,并且正是应该使用SO的方式之一(但通常不够).
@SailingJudo:退出拖钓.鼓励这样做.
推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有