ホームページ >バックエンド開発 >Python チュートリアル >Python プログラミングを使用して音声でコンピューターを制御する

Python プログラミングを使用して音声でコンピューターを制御する

WBOY
WBOYオリジナル
2016-06-16 08:44:432078ブラウズ

コンピューターの前で、コンピューターに命令を受けさせたいですか?疲れたときに「疲れた」と言うだけで、コンピューターが上品な軽やかな音楽を流してリラックスさせてくれます。 忙しいスケジュールの合間に、コンピュータ担当者に最新の NBA スコアを読んでもらいたいと思うかもしれません...すべてがとても快適です。

私がここで言いたいのは、落胆しないでください、本当にそれを作ることができるということです。
音声認識を行いますか? ここに来る人は、好奇心とそれを避けるという2つの心理を抱えていると思います。

実際には、それほど多くのプログラミング スキルを知る必要はなく、自然言語処理テクノロジを知る必要もありません。この記事では音声制御を実装していますが、決してそのようなものではありません。思った通り複雑。 音声認識が実装されたインターフェイスとしてのみ使用される場合、残りのロジックは IF-ELSE などの単純な要素だけです。


音声制御の原理

音声制御は、音声認識と音声読み上げの 2 つの部分に分かれています。

これら 2 つの部分には、本来、自然言語処理スキルと一連の非常に複雑なアルゴリズムの知識が必要ですが、アルゴリズムと自然言語学のみに興味がある場合は、この記事は省略しますので、そのまま先に進んでください。以下の内容については一言も触れません。

IBM は 1990 年代に非常に強力な音声認識システム vio voice を発売して以来、関連製品が際限なく登場し、常に進化しています。 ここでは SAPI を使用して音声モジュールを実装します。

SAPI とは何ですか?

SAPI は Microsoft Speech API であり、Microsoft によって開始された音声インターフェイスです。WINXP 以降、システムにはすでに音声認識機能が備わっていますが、その機能を提供する余地はほとんどありません。ユーザーフレンドリーなカスタマイズソリューションですが、唯一の音声制御コマンドは非常に威圧的です。 この記事の目的は、SAPI を使用してパーソナライズされた音声認識を行うことです。

準備段階では、少なくとも次のツールをインストールする必要があります:

Python2.7 http://www.python.org/

2.7 を使用することを強くお勧めします。これまでのところ、Python 2.7 は Python シリーズの中で最も多くのツールとアプリケーションをサポートしており、比較的安定しています。

Win32Com http://starship.python.net/~skippy/win32/Downloads.html


Python Win32 拡張ツールにより、Python で WIN32COM インターフェイスを呼び出すことができます。このツールの登場により、Python は非常に強力になりました。

Speech.py​​ http://pypi.python.org/pypi/speech/

これは非常に合理化されたパッケージ モジュールです。もちろん、これを再発明することはお勧めしません。ただし、落胆しないでください。 Python2.6 と Python2.7 のコードは互換性があり、例外はありません。

インストールプロセス中は上から順に実行してください。

開発段階

上記の関連ツールをインストールすると、以下を開発できます:

最初に簡単な環境のデバッグを実行します:

コードをコピーします コードは次のとおりです:

whileTrue:
フレーズ = speech.input()
speech.say("あなたは %s と言った"%phrase)
ifphrase == "オフにする":
ブレーク


上記のコードは音声認識を開始します。同時に、システムは入力した音声を繰り返します。「オフ」に遭遇すると、認識システムは自動的にオフになります。
テストに正しく合格すると、拡張機能の開発を開始できます。

1. 中国語セマンティック ライブラリを定義します

コードをコピーします コードは次のとおりです:
closeMainSystem ="人間とコンピューターの対話を閉じる"
openEclipse ="プログラムを書きたい"
listenMusic ="とても疲れた"
blog ="ブログを読む"
php ="php"
java ="JAVA 「」


2. 関連するセマンティック操作ロジックを定義します

コードをコピーします コードは次のとおりです:
defcallback(phrase,listener):
print(": %s"%phrase)
ifphrase ==closeMainSystem:
speech.say("さようなら。人間とコンピュータの対話は間もなく終了します。ご利用いただきありがとうございます" )
listener.stoplistening()
sys.exit()
elifphrase ==openEclipse:
speech.say("PYTHON または JAVA プログラムを作成しますか?" )
speech.listenforanything (コールバック)
elifphrase ==listenMusic:
speech.say("Douban Radio がすぐに開始されます")
webbrowser.open_new("http://douban. fm/")
elifphrase = =blog:
speech.say("Coming to Dreamforce.me")
webbrowser.open_new("http://dreamforce.me/")
elifphrase = =php:
speech.say ("PHP ライターの開始")
os.popen("E:IDEphp_eclipseeclipseeclipse.exe")
elifphrase ==php:
speech.say("JAVA ライターの開始")
os.popen("E:IDEphp_eclipseeclipseeclipse.exe")


このうち、os.popen は非同期オープニングプログラムです。この操作だけでは SHELL ウィンドウは開きません、現在のプロセスをブロックすることもありません。
speech.say() は SAPI を呼び出してパラメータを読み取ります。
webbrowser.open_new() は Web ページを開きます。

3. プログラム実行本体をビルドします

コードをコピーします コードは次のとおりです。
listener =speech.listenforanything(callback) )
whilelistener .islistening():
text =input()
iftext == "これ以上スピーチはありません":
listener.stoplistening()
sys.exit()
else :
スピーチ .say(テキスト)

このセクションは、音声モニタリングをオンにし、端末入力モードをサポートするという操作の本体です。声がかすれている場合は、文字を入力することもできます、はは~~

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。