37

入力時に手首が痛いので、音声認識を使用して SQL ステートメント、ストアド プロシージャ、およびビューを書き始めたいと考えています。

4

2 に答える 2

72

はい。SQL は、語彙が限られており、文のような構造であるため、音声認識に適しています (つまり、プログラミング言語と同様に適しています)。見栄えがよくなるように SQL をフォーマットするだけでなく、タイピングするよりもはるかに速く口述することができます。ただし、コードの口述は万人向けではありません。最初はかなりイライラすることがあります。これを試してやり続ける人は、おそらく他に選択肢がない人でしょう。

Dragon NaturallySpeaking 10 Professional を使用しています。Professional バージョンには、このようなカスタム語彙を作成するために必要なツールが含まれています。バージョン 9 も正常に動作するはずです。費用がかかるので、できれば勤務先の会社に支払ってもらうようにしてください。まともなヘッドセット マイクも入手してください。NaturallySpeaking に付属しているものでは十分ではありません (ただし、最初に試して、自分に適しているかどうかを確認してください)。KnowBrainerは、マイクを推奨するのに適した場所です。

2009-01-05 更新: SQL Server Management Studio でのディクテーションに固有の以下のヒントを追加しました。

2012-01-04 更新: 私はかなり長い間 Microsoft の 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%'「開く-一重引用符パーセント記号シエラマイクインドタンゴホテルパーセント記号閉じる-一重引用符[PAUSE]化合物-それ」と口述されました。NaturallySpeaking は、ある単語が別の単語の近くに出現する頻度の統計を保持しているため、一貫したテーブル エイリアスと常に先行するフィールドを使用すると、精度が向上します。

SQL キーワードの単語リストを作成する

各行に 1 つの単語を入力します。オプションで、単語の後にバックスラッシュ (\) と発音を続けることができます。SELECTNaturallySpeaking は単語の小さなバックアップ辞書を使用して、語彙に追加する単語の発音を決定し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 では、次の (非標準) 正規表現は、大文字と小文字が混在する 2 つの単語の名前の発音を作成します。

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

発音を確認し、正しくないように見えるものをすべてクリーンアップします。頭字語の場合ASPは「ASP」になります。このリストも保管しておいてください。データベース開発者であれば、他のプログラミング言語のボキャブラリーを作成することに決めた場合、これらの単語を含めることになるでしょう。

すべての SQL コード (ビュー、プロシージャなど) を含むテキスト ドキュメントを作成します。

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]

コメントとリテラル文字列を削除します。正規表現の検索と置換は、これに適しています。

語彙を増やす

NaturallySpeaking をインストールし、まだ作成していない場合は新しいユーザーを作成します。

新しい語彙を作成する

「NaturallySpeaking | 語彙の管理...」をクリックします。[新規] をクリックします。「SQL」など、語彙に適切な名前を付けます。「Base General - Empty Dictation」に基づいてください。電子メールまたはドキュメントをスキャンするかどうかを尋ねられたら、[キャンセル] をクリックします。

単語をインポート

「単語 | インポート」をクリックします。作成した 2 つの単語リストを追加してインポートします。

書き方に合わせる

「ツール |精度センター」をクリックします。「文書から語彙に単語を追加する」をクリックします。デフォルト設定を使用して、作成したコードを含むドキュメントを選択します。

いくつかの SQL を口述してみてください

おそらく最初に口述したくなるのは、select ステートメントです。SELECT は、NaturallySpeaking でテキストを選択するコマンドを開始するために使用するものであることに注意してください。このため、NaturallySpeaking が混乱しないように、口述する前に「Cap」と言う必要があります。それでおしまい。少なくとも、始めるには十分です。必要に応じて、単語リスト、発音、および単語のプロパティを変更します。精度と口述速度を向上させるためにできることは他にもあります。それらを考えながら、この投稿を編集してここに追加します。

SQL Server Management Studio に口述するためのヒント

SQL Server Management Studio に指示すると、パフォーマンスが非常に遅くなることがあります。これを軽減するには、次のことを試してください。

  • すべてのツールバーをオフにします (よく使用される機能にアクセスするためのマクロを作成します)
  • 開いているウィンドウやドキュメントをできるだけ少なくする
  • 一度に 1 つのデータベースのみを開いておく
  • 作業が終わったら検索結果を非表示にする (Ctrl+R)
  • 他のすべてが失敗した場合は、管理スタジオを閉じて再度開きます
  • 編集ウィンドウにタブ ストップを表示して、SQL の書式設定を容易にします。

SQL Server 2000 のクエリ アナライザには、これらの問題はありません。

于 2008-12-08T18:15:48.057 に答える
5

http://voicecode.io

私は最近、自分自身の RSI 問題を解決するために作成した音声によるコーディング ソリューションである VoiceCode をリリースしました。

Sublime Text と Xcode でのコーディング、および一般的なコンピューターの使用に使用します。これは、SQL を含む任意の言語でコードを記述する場合に機能します。このソリューションの優れた点は、すべてのコマンドを「コマンド フレーズ」に連鎖できるため、他の音声コマンド ソリューションのように、個々のコマンドごとに一時停止する必要がないことです。

すべての標準的な変数名形式 (スネーク ケース、キャメル ケースなど) の組み込みサポートがあり、キーボード ショートカットのすべての順列に対応する組み込みコマンド (つまり、command-shift-5、command-option-shift-T など) があります。には、カーソル移動コマンド、アプリ切り替えコマンド、ウィンドウ切り替えコマンド、「=>」、「||」、">=" などの記号の組み合わせのコマンド、その他多数のコマンドがあります。さらに、独自のカスタム コマンドを追加することも非常に簡単です。

于 2015-01-08T03:29:09.873 に答える