Question

J'ai des douleurs au poignet lorsque je tape et j'aimerais commencer à écrire des instructions SQL, des procédures stockées et des vues en utilisant la reconnaissance vocale.

Était-ce utile?

La solution

Oui. SQL est bien adapté à la reconnaissance vocale (aussi bien qu'un langage de programmation puisse l'être), étant donné son vocabulaire limité et sa structure ressemblant à une phrase. En plus de formater le code SQL afin qu'il soit agréable, je peux le dicter beaucoup plus rapidement que de le taper. Dictant le code n'est pas pour tout le monde, cependant. Cela peut être assez frustrant au début. Ceux qui essaieront cela et s'en tiendront seront probablement ceux qui n'auront pas d'autre choix.

J'utilise Dragon NaturallySpeaking 10 Professional. La version professionnelle contient les outils nécessaires pour créer un vocabulaire personnalisé comme celui-ci. La version 9 devrait également fonctionner correctement. C'est cher, alors essayez de faire payer par l'entreprise pour laquelle vous travaillez, si possible. Obtenez un microphone de casque décent également. Celui fourni avec NaturallySpeaking n’est pas assez bon (mais vous voudrez peut-être l’essayer d’abord pour voir si cela fonctionne pour vous). KnowBrainer est un bon endroit pour recommander des microphones.

2009-01-05 Mise à jour : j'ai ajouté ci-dessous des conseils spécifiques à la dictée dans SQL Server Management Studio.

2012-01-04 Mise à jour : Je surveille le WSR de Microsoft depuis un certain temps déjà, en espérant que des outils seraient ajoutés pour créer facilement un vocabulaire entièrement personnalisé, comme je le fais dans ce tutoriel avec NaturallySpeaking. Malheureusement, il semble que cela ne puisse être fait que via l'API (SAPI). Je n'ai pas le temps d'écrire ce code, je vais donc continuer à utiliser NaturallySpeaking pour écrire du code jusqu'à ce que quelque chose de mieux se présente.

Préparation

Nettoyez les noms et le code de votre base de données

Dictée " SELECT PT_17, PT_28, PT_29 FROM HIK.dbo.PATINFO " serait une douleur dans les fesses, mais je suppose que ce serait possible. Vous devrez définir de nombreuses prononciations, car NaturallySpeaking n'aurait aucune idée de la façon dont & Quot; PT_17 & Quot; sonnerait. 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é au vocabulaire TSQL pour dicter la déclaration ci-dessus. Jusqu'à la déclaration LIKE, tout est dit tel qu'il apparaît. '%smith%' a été dicté en tant que & "; signe de pourcentage ouvert sierra mike inde tango hotel pourcentage-signe fermer-simple-devis [PAUSE] -que &"; En utilisant des alias de table cohérents et en faisant toujours précéder les champs, vous améliorez la précision, car NaturallySpeaking conserve des statistiques sur la fréquence d'apparition d'un mot près d'un autre.

Créer une liste de mots-clés SQL

Mettez un mot sur chaque ligne. Vous pouvez éventuellement suivre un mot avec une barre oblique inverse (\) et une prononciation. NaturallySpeaking utilise un petit dictionnaire de sauvegarde de mots pour déterminer la prononciation des mots que vous ajoutez à un vocabulaire. Il n'a donc aucun problème à déterminer comment SELECT, FROM et WHERE sont prononcés. Il peut parfois comprendre un mot composé et devine mieux quelque chose comme XACT_ABORT. Je fournirais des prononciations pour des cas comme ceux-ci. La base de données que vous utilisez déterminera les mots contenus dans la liste. Consultez votre documentation pour obtenir une liste de mots-clés. Votre liste ressemblera à quelque chose comme ça, mais soyez beaucoup plus longue.

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

Ajoutez également 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

Conservez cette liste, car vous la modifierez probablement plusieurs fois et recréez votre vocabulaire pour qu'il soit comme vous l'aimez.

Créez une liste de mots contenant les noms d'objet de votre base de données

Voici comment 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

Copiez et collez les résultats dans un fichier texte.

Créez des prononciations pour les noms d'objet de votre base de données

Utilisez le même format que celui indiqué ci-dessus pour les prononciations. Un moyen facile de les créer consiste à utiliser une fonction de recherche et de remplacement de regex. Dans SQL Server Management Studio ou Visual Studio, les expressions rationnelles suivantes (non standard) créeront des prononciations pour les noms de casse mixte de deux mots.

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

Passez en revue les prononciations et nettoyez tout ce qui ne va pas. Pour les acronymes, ASP devient «A.S.P.». Garder cette liste aroet aussi. Si vous décidez de créer des vocabulaires pour d’autres langages de programmation, vous devrez probablement les inclure si vous êtes développeur de bases de données.

Créez un document texte contenant tout votre code SQL (vues, 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]

Supprimez les commentaires et les chaînes littérales. La recherche et le remplacement de regex fonctionnent bien pour cela.

Construisez votre vocabulaire

Installez NaturallySpeaking et créez un nouvel utilisateur si ce n'est déjà fait.

Créer un nouveau vocabulaire

Cliquez sur & "NaturallySpeaking" | Gérer les vocabulaires ... & Quot ;. Cliquez sur Nouveau. Nommez le vocabulaire approprié, tel que & Quot; SQL & Quot ;. Basez-le sur & "Base Général - Dictée vide &". Lorsque le système vous demande si vous souhaitez analyser votre courrier électronique ou vos documents, cliquez sur Annuler.

Mots d'importation

Cliquez sur & "Mots | Importer & Quot ;. Ajoutez les deux listes de mots que vous avez créées et importez-les.

Adaptez-vous au style d'écriture

Cliquez sur & "Outils | Centre de précision &. Cliquez sur & "Ajouter des mots de vos documents au vocabulaire &". Utilisez les paramètres par défaut et sélectionnez le document contenant votre code que vous avez créé.

Essayez de dicter du code SQL

La première chose que vous voudrez probablement dicter est une instruction select. Gardez à l'esprit que vous utilisez SELECT pour commencer une commande dans NaturallySpeaking qui sélectionne du texte. Pour cette raison, vous voudrez dire & "Cap &"; avant de le dicter afin que NaturallySpeaking ne soit pas dérouté. C'est tout. Eh bien, au moins assez pour vous aider à démarrer. Modifiez vos listes de mots, vos prononciations et propriétés de mots selon vos besoins. Vous pouvez également augmenter la précision et la vitesse à laquelle vous pouvez dicter. Au fur et à mesure que je pense à eux, je vais éditer ce post et les ajouter ici.

Conseils pour la dictée dans SQL Server Management Studio

Si vous dictez dans SQL Server Management Studio, vous remarquerez peut-être des performances très lentes. Essayez ce qui suit pour atténuer ce problème:

  • Désactiver toutes les barres d’outils (créer des macros) accéder couramment utilisé fonctionnalité)
  • Conservez aussi peu de vitres et documents ouverts autant que possible
  • Ne laissez qu'une base de données ouverte à la fois
  • Masquer les résultats de la recherche après avoir terminé avec eux (Ctrl + R)
  • Si tout le reste échoue, ferme et rouvre la gestion studio
  • Affichez les tabulations dans la fenêtre d'édition pour faciliter le formatage de votre code SQL.

L’analyseur de requêtes de SQL Server 2000 n’a pas ces problèmes.

Autres conseils

http://voicecode.io

J'ai récemment lancé VoiceCode, une solution de codage par voix que j'ai créée pour résoudre mes propres problèmes RSI.

Je l'utilise pour coder en texte Sublime et Xcode, ainsi que pour l'utilisation de l'ordinateur en général. Cela fonctionne pour écrire du code dans n'importe quel langage, y compris SQL. Le grand avantage de cette solution est que toutes les commandes peuvent être chaînées en & "Phrases de commande &"; vous n'avez donc pas besoin de faire de pause entre chaque commande, comme vous le faites avec d'autres solutions de commande vocale.

Il prend en charge tous les formats de nom de variable standard (cas de serpent, cas de chameau, etc.), des commandes intégrées pour chaque permutation de raccourcis clavier (par exemple, commande-shift-5, commande-option-shift-T, et etc.), comporte des commandes de déplacement du curseur, des commandes de commutation d'applications, des commandes de commutation de fenêtres, des commandes pour les combinaisons de symboles telles que " = > & "; &"; || & " ;, " > = " ;, etc, et beaucoup plus. De plus, il est très facile d'ajouter vos propres commandes personnalisées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top