Pergunta

Tenho dor no pulso quando digito e gostaria de começar a escrever declarações SQL, procedimento armazenado e visualizações usando o reconhecimento de fala.

Foi útil?

Solução

Sim. O SQL é adequado ao reconhecimento de fala (tão adequado quanto uma linguagem de programação, ou seja), dado que seu vocabulário limitado e estrutura semelhante à frase. Além de formatar o SQL para que pareça bom, eu posso ditar isso muito mais rápido do que digitar. Ditar o código não é para todos, no entanto. Pode ser bastante frustrante no começo. As pessoas que tentam isso e se mantêm provavelmente serão aquelas que não têm outra escolha.

Eu uso o Dragon naturalmente espancando 10 profissionais. A versão profissional possui as ferramentas necessárias para criar um vocabulário personalizado como este. A versão 9 deve funcionar bem também. É caro, então tente obter a empresa para a qual você trabalha para pagar, se possível. Obtenha um microfone de fone decente também. O que vem com o discurso natural não é bom o suficiente (mas você pode tentar primeiro ver se funciona para você). KnowBrainer é um bom lugar para recomendações de microfone.

Atualização 2009-01-05: Eu adicionei dicas abaixo específicas para ditar o SQL Server Management Studio.

Atualização 2012-01-04: Eu tenho acompanhado o WSR da Microsoft há um bom tempo, esperando que as ferramentas fossem adicionadas para criar facilmente um vocabulário completamente personalizado do zero, como estou fazendo neste tutorial com o naturalmente. Infelizmente, parece que isso só pode ser feito através da API (SAPI). Não tenho tempo para escrever esse código, por isso continuarei usando a discussão naturalmente para escrever código até que algo melhor apareça.

Preparação

Limpe seus nomes e código de banco de dados

Ditando "SELECT PT_17, PT_28, PT_29 FROM HIK.dbo.PATINFO"Seria uma dor no traseiro, mas acho que seria possível. Você teria que definir muitas pronúncias, já que o ritmo naturalmente não teria idéia de como"PT_17"Soaria. Isso seria preferível para o ditado:

SELECT Patient.FirstName, Patient.MiddleName, Patient.LastName FROM Claim.dbo.Patient AS Patient WHERE Patient.LastName LIKE '%smith%'

Mudei para o meu vocabulário TSQL para ditar a declaração acima. Tudo até o LIKE A declaração é falada exatamente como parece. '%smith%' foi ditado como "Sierra Mike Mike Mike Mike Tango-SIGLE DE INDIA TANGO DO SINDO ABRIL-QUETO Índia O uso de aliases consistentes da tabela e sempre precedindo campos com eles ajuda a melhorar a precisão, já que o ritmo naturalmente mantém as estatísticas da frequência com que uma palavra aparece perto de outra.

Crie uma lista de palavras de palavras -chave SQL

Coloque uma palavra em cada linha. Opcionalmente, você pode seguir uma palavra com uma barra de barragem () e uma pronúncia. O que fala naturalmente usa um pequeno dicionário de backup de palavras para determinar a pronúncia de palavras que você adiciona a um vocabulário, por isso não tem problema em descobrir como SELECT, FROM, e WHERE são pronunciados. Às vezes, pode descobrir uma palavra composta e faz o melhor palpite para algo como XACT_ABORT. Eu forneceria pronúncias para casos como esses. O banco de dados que você usa determinará quais palavras a lista contém - verifique sua documentação para obter uma lista de palavras -chave. Sua lista ficará assim, mas seja muito mais longo.

SELECT
WHERE
FROM
XACT_ABORT\exact-abort
MAXDOP
NOLOCK\no-lock
LEN
RETURNS
CURSOR
MONEY    

Adicione também estas palavras

\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

Mantenha essa lista, pois você provavelmente o modificará várias vezes e recrie seu vocabulário para obtê-lo da maneira que você gosta.

Crie uma lista de palavras dos seus nomes de objetos de banco de dados

É assim que faço isso no 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

Copie e cole os resultados em um arquivo de texto.

Crie pronúncias para seus nomes de objetos de banco de dados

Use o mesmo formato para pronúncias listadas acima. Uma maneira fácil de criar isso é usar uma função Regex Search and Substituir. No SQL Server Management Studio ou no Visual Studio, o seguinte (não padrão) Regex criará pronúncias para dois nomes de casos mistos de palavras.

Find: ^{[A-Z][a-z]+}{[A-Z][a-z]+}$
Replace: \0\\\1-\2

Revise as pronúncias e limpe qualquer coisa que não pareça correta. Para acrônimos, ASP torna -se `asp '. Mantenha essa lista também. Se você decidir fazer vocabulários para outras linguagens de programação, provavelmente incluirá essas palavras se for um desenvolvedor de banco de dados.

Crie um documento de texto que contenha todo o seu código SQL (visualizações, procedimentos, etc.)

Servidor SQL:

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]

Remova comentários e cordas literais. A pesquisa e substituição do Regex funcionam bem para isso.

Construa seu vocabulário

Instale a discurso natural e crie um novo usuário, se você ainda não o possui.

Crie um novo vocabulário

Clique em "NaturallysPaken | Gerenciar vocabulários ...". Clique em Novo. Nomeie o vocabulário algo apropriado, como "SQL". Baseie -o em "Base Geral - Ditação vazia". Quando ele perguntar se você deseja digitalizar seu e -mail ou documentos, clique em Cancelar.

Importar palavras

Clique em "Palavras | importar". Adicione as duas listas de palavras que você criou e importá -las.

Adaptar -se ao estilo de escrita

Clique em "Ferramentas | Centro de Precisão". Clique em "Adicionar palavras de seus documentos ao vocabulário". Use as configurações padrão e selecione o documento criado que contém seu código.

Tente ditar alguns SQL

A primeira coisa que você provavelmente deseja ditar é uma instrução SELECT. Lembre -se de que o Select é o que você usa para iniciar um comando em discursos naturais que seleciona o texto. Por causa disso, você vai querer dizer "Cap" antes de ditá -lo tão naturalmente não fica confuso. É isso. Bem, pelo menos o suficiente para você começar. Modifique suas listas de palavras, pronúncias e propriedades do Word, conforme necessário. Há outras coisas que você pode fazer para aumentar a precisão e a velocidade com que você pode ditar. Enquanto penso neles, vou editar este post e adicioná -los aqui.

Dicas para ditar o SQL Server Management Studio

Se você ditar no SQL Server Management Studio, poderá notar um desempenho muito lento. Experimente o seguinte para aliviar isso:

  • Desligue todas as barras de ferramentas (crie macros para acessar a funcionalidade comumente usada)
  • Mantenha o menor número possível de painéis e documentos
  • Mantenha apenas um banco de dados aberto por vez
  • Ocultar os resultados da pesquisa depois de terminar com eles (Ctrl+R)
  • Se tudo mais falhar, feche e reabre o estúdio de gerenciamento
  • Exibir as paradas da guia Na janela Editar para facilitar a formatação do seu SQL.

O Analisador de consulta do SQL Server 2000 não tem esses problemas.

Outras dicas

http://voicecode.io

Recentemente, lancei o VoiceCode, uma solução de codificação por voz que criei para resolver meus próprios problemas de RSI.

Eu o uso para codificar em texto sublime e xcode, além de uso geral de computador. Funciona para escrever código em qualquer idioma, incluindo SQL. O melhor dessa solução é que todos os comandos podem ser acorrentados em "Frases de comando" para que você não precise fazer uma pausa entre todos os comando individuais, como faz com outras soluções de comando de voz.

Possui suporte incorporado para todos os formatos de nome variável padrão (capa de cobra, capa de camelo etc.), possui comandos construídos para todas as permuções de atalhos de teclado (por exemplo, comando-shift-5, comando-opção-shift-t e assim por diante) , possui comandos de movimento do cursor, comandos de comutação de aplicativos, comandos de comutação de janela, comandos para combos de símbolos como "=>", "||", "> =", etc, e toneladas mais. Além disso, é muito fácil adicionar seus próprios comandos personalizados também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top