J'ai des douleurs au poignet quand je tape et je voudrais commencer à écrire des requêtes SQL, de la procédure stockée, et des vues à l'aide de la reconnaissance vocale.
Réponse
Trop de publicités?Oui. SQL est bien adaptée à la reconnaissance de la parole (aussi bien adapté comme un langage de programmation peut être, que c'est), étant donné qu'il est limité de vocabulaire et de phrase-comme la structure. À part le formatage de la SQL de sorte qu'il a l'air sympa, je peux dicter beaucoup plus rapide que de taper. Dicter code n'est pas pour tout le monde, cependant. Il peut être très frustrant au début. Les gens qui essayent de cette et le bâton avec il sera probablement ceux qui n'ont pas d'autres choix.
J'utilise Dragon NaturallySpeaking 10 Professionnel. La version Professionnelle est les outils qui sont nécessaires pour créer un vocabulaire de ce genre. La Version 9 devrait fonctionner, aussi. C'est cher, alors essayez d'obtenir de l'entreprise pour laquelle vous travaillez à payer pour cela si possible. Avoir un bon casque microphone. Celui qui vient avec NaturallySpeaking n'est pas assez bon (mais vous pouvez essayer afin de voir si cela fonctionne pour vous). KnowBrainer est un bon endroit pour microphone recommandations.
2009-01-05 mise à Jour: j'ai ajouté des conseils ci-dessous spécifique à la dictée dans SQL Server Management Studio.
2012-01-04 mise à Jour: j'ai gardé la trace de Microsoft WSR pour un bon moment maintenant, en espérant que les outils seront ajoutés pour créer facilement une mesure de vocabulaire à partir de zéro comme je le fais dans ce tutoriel avec NaturallySpeaking. Malheureusement, il semble que cela ne peut être fait par le biais de l'API (SAPI). Je n'ai pas le temps pour écrire le code, donc je vais continuer à utiliser NaturallySpeaking pour écrire du code jusqu'à ce que quelque chose de mieux se présente.
Préparation
Nettoyer votre base de données des noms de code et de
Dicter "SELECT PT_17, PT_28, PT_29 FROM HIK.dbo.PATINFO
" serait une douleur dans le cul, mais je suppose que ce serait possible. Vous devez mettre beaucoup de prononciations, depuis NaturallySpeaking aurait aucune idée de comment "PT_17
" aurait son. Ce serait préférable pour la dictée:
SELECT Patient.FirstName, Patient.MiddleName, Patient.LastName FROM Claim.dbo.Patient AS Patient WHERE Patient.LastName LIKE '%smith%'
Je suis passé à ma TSQL vocabulaire de dicter la déclaration ci-dessus. Tout à l' LIKE
déclaration est parlé comme il apparaît. '%smith%'
a été dicté "open-guillemet simple signe de pourcentage de la sierra mike inde tango hotel le signe de pourcentage près d'apostrophes [PAUSE] composé-que". Utilisation cohérente des alias de table et toujours précédents champs contribue à améliorer la précision, depuis NaturallySpeaking conserve les statistiques de la façon dont souvent un mot apparaît à côté de l'autre.
Créer une liste de mots de mots-clés SQL
Mettre un mot sur chaque ligne. Vous pouvez éventuellement suivre un mot avec une barre oblique inverse (\) et la prononciation. NaturallySpeaking utilise une petite sauvegarde dictionnaire des mots pour déterminer la prononciation des mots que vous ajoutez à un vocabulaire, de sorte qu'il n'a pas de problème à comprendre comment SELECT
, FROM
, et WHERE
sont prononcées. Il peut parfois comprendre un mot composé, et il fait de son mieux pour deviner quelque chose comme XACT_ABORT
. Je voudrais fournir des prononciations pour des cas comme ceux-ci. La base de données que vous utilisez déterminera quels sont les mots de la liste contient - consultez votre documentation pour une liste de mots-clés. Votre liste devrait ressembler à quelque chose comme cela, mais être beaucoup plus longue.
SELECT
WHERE
FROM
XACT_ABORT\exact-abort
MAXDOP
NOLOCK\no-lock
LEN
RETURNS
CURSOR
MONEY
Également ajouter ces mots
\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
Gardez cette liste, car vous aurez probablement modifier plusieurs fois et re-créer votre vocabulaire pour obtenir de la manière que vous l'aimez.
Créer une liste de mots de votre base de données de noms d'objets
C'est la façon dont je le fais dans 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
Copier et coller les résultats dans un fichier texte.
Créer des prononciations pour votre base de données de noms d'objets
Utiliser le même format pour les prononciations comme indiqué ci-dessus. Un moyen facile de créer ces est d'utiliser une regex de recherche et de remplacement de la fonction. Dans SQL Server Management Studio ou Visual Studio suivantes (non-standard) regex va créer prononciations pour word deux noms de cas mixtes.
Find: ^{[A-Z][a-z]+}{[A-Z][a-z]+}$
Replace: \0\\\1-\2
Examen de la prononciation et de nettoyer tout ce qui ne regarde pas à droite. Pour les acronymes, ASP
devient "A. S. P.'. Gardez cette liste, ainsi. Si vous décidez de faire des vocabulaires pour d'autres langages de programmation, vous aurez probablement inclure ces mots, si vous êtes un développeur de base de données.
Créer un document texte qui contient l'ensemble de votre code SQL (les vues, les procédures, etc.)
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]
Supprimer les commentaires et les chaînes littérales. Regex de recherche et de remplacement fonctionne bien pour cela.
Construisez votre vocabulaire
Installer NaturallySpeaking et de créer un nouvel utilisateur si vous ne l'avez pas déjà.
Créer un nouveau vocabulaire
Cliquez sur "NaturallySpeaking | Gérer les Vocabulaires...". Cliquez Sur Nouveau. Nom le vocabulaire quelque chose d'approprié, tel que "SQL". Base sur "Base Générale - Vide de la Dictée". Quand il vous demande si vous souhaitez numériser vos e-mails ou des documents, cliquez sur annuler.
Importer des mots
Cliquez Sur "Mots | Importer". Ajouter les deux listes de mots que vous avez créé et de l'importation.
S'adapter au style d'écriture
Cliquez Sur "Outils | Précision Center". Cliquez sur "Ajouter des mots à partir de vos documents pour le vocabulaire". Utiliser les paramètres par défaut, puis sélectionnez le document que vous avez créé qui contient votre code.
Essayer de dicter certaines SQL
La première chose que vous aurez probablement envie de dictate est une instruction select. Gardez à l'esprit que choisir est ce que vous utiliser pour commencer une commande dans NaturallySpeaking qui permet de sélectionner du texte. De ce fait, vous aurez envie de dire "Chapeau" avant de dicter sorte NaturallySpeaking ne pas se confondre. C'est tout. Eh bien, au moins assez pour vous obtenir a commencé. Modifier vos listes de mots, la prononciation, et la parole propriétés en tant que de besoin. Il y a d'autres choses que vous pouvez faire pour augmenter la précision et la vitesse à laquelle vous pouvez dicter. Comme je pense à eux, je vais éditer ce post et de les ajouter ici.
Conseils pour dicter dans SQL Server Management Studio
Si vous dicter dans SQL Server Management Studio, vous remarquerez peut-être très lente de la performance. Essayez les solutions suivantes pour atténuer ce:
- Éteignez toutes les barres d'outils (création de macros pour accéder couramment utilisés la fonctionnalité)
- En garder que quelques volets et les documents sont ouverts que possible
- En garder qu'une base de données ouverte à un moment
- Masquer les résultats de la recherche après que vous avez terminé avec eux (Ctrl+R)
- Si tout le reste échoue, de fermer et de rouvrir la gestion studio
- Afficher les taquets de tabulation dans la fenêtre d'édition pour le rendre plus facile pour formater votre SQL.
L'Analyseur de requêtes à partir de SQL Server 2000 n'ont pas ces problèmes.