ソフトウェア」カテゴリーアーカイブ

Python + pywin32 で COM 叩いてしゃべらせる。

どうもみむらです。
普段は SUA (UNIX 互換環境) 上で叩いているのですが、
今日は堂々と Windows 上で叩いてみます。

PyWin32 ってのをつかって、 COM コントロールを叩いてみます。

とりあえず。COM コントロールとは。

Microsoft社が提唱する、部品化されたプログラムを作成・利用するための基盤となる技術仕様。特定の機能のみを持つプログラム部品を組み合わせることでアプリケーションソフトの開発が容易になる。この仕様に基づいてデータのやりとりができるプログラム部品のことをCOMコンポーネントと呼ぶ。

COMとは【Component Object Model】 – 意味-解説-説明-定義 : IT用語辞典

だそーです! (ぉ

夢のある話をすると、COM コントロールを使うことで、
音声認識や音声合成、各種 Office アプリケーションの制御、その他 COM コンポーネントが提供する機能を
使うことが出来ます。


1.Python の導入

http://www.python.jp/Zope/download/pythoncore
上記URL から、 Python 2.x 系をインストールします。

えーと、Python 3.x 系はいろいろと変わったようで。でも動くのかなぁ。うーん

2.Python for Windows extensions の導入

http://sourceforge.net/projects/pywin32/files/pywin32/
ここから最新ビルド(一覧の 「Build???」 の数字が一番大きい物を選択)のうちの、
上で導入したバージョンと同じ物(無ければ近いバージョン)をインストール。

3.叩く。

ばんばん! ちがいます。
スタートメニューから Python を立ち上げて、

image

このように立ち上げておきます。

続けて、

import win32com.client

とタイプ。

image

今回は音声合成ということで、「Sapi.SpVoice」を使って、

Speak メソッドを叩いてしゃべらせます。

もし今回使う、「Microsoft Speech API」が気になる人は、

http://msdn.microsoft.com/en-us/library/ms723602(v=VS.85).aspx

この辺の資料を参考にして下さい。

speech = win32com.client.Dispatch("Sapi.SpVoice")
speech.Speak("Hello Python World!")

実行しますと、Win7 / Vista 環境では、多分、米国英語のおねいさんが

しゃべってくれると思います。

XP 環境ですと、なんか相当声のしゃくれたおっちゃんがしゃべってくれた気がします。

・・試してないですが。

とりあえずこんな感じでー。

しゅしゅぽっぽ sl コマンド

image

どうも。みむらです。
ls コマンドってよく間違えますよね! そう、上記の様に。

$ alias sl='ls'

まさかこんな悲しいことする人はいませんよねぇ。

やぱり、男なら、

しゅっしゅっぽっぽ。 と汽車が走らなければ!


SL コマンドの導入。

1.東大の豊田先生のウェブサイトから sl コマンドのソースをダウンロードします。

$ wget http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/sl/sl.tar
$ tar xvf sl.tar

image

2.Makefile をちょっとごにょごにょ。

$ sed -i -e 's/cc/gcc/g' Makefile

image

3.Make

$ make

4.(SL したい方向け) /usr/local/bin/ に配置。

$ su
Password: (パスワード)
$ mv sl /usr/local/bin/

5.きしゃぽっぽ

$ sl

image


最後に。汽車ぽっぽ入れておくと、非常にUNIX 作業が楽しくなると思います。

と同時に、こういうプログラムでも真剣に作る開発者になりたいと、そう思います。

GNU系ツールもばっちり使える、Windows の UNIX 互換環境を試してみる。

最近 UNIX に恋し始めているので、 SUA という Microsoft が公式に提供している UNIX 互換環境を試してみました。

Windows の SUA とはどんなモンなのか、前に少し試したんですが、使いづらいイメージしか無かったので、
手元の環境が Ultimate になったいま、本当にそうなのか試してみたいと思います。

結論から言うと、結構面白い環境。でした。

なお、
SUAを有効にするためには、Windows 7 or Windows Vista の Ultimate が必要です。

ブログでは Windows 7 Ultimate を元に説明します。

image
入れると、Windows 上で Bash を立ち上げて、UNIX コマンドを打って動かしたり、

image
Windows の cmd で提供されているコマンドを叩いて動かすことも出来ます。

勿論 bash ですんで、補完機能やキーボードショートカットはばっちりで、
image
コマンドに対して補完掛けたりとかが可能です。


1.有効にするには。

image
プログラムのアンインストールを選択。

image
Windows の機能の有効化または無効化を選択。

image
UNIXベース アプリケーション用サブシステム を有効にして、「OK」をクリック。

image
スタートメニューを開き、すべてのプログラム内にある、
「UNIXベース アプリケーション用サブシステム」 をクリック。

ウェブサイトが開くので、
「Continue」、「No, I do not want…」を選んで「Continue」を押し、
image
表示されたページから、64bit であれば amd64、32bit であれば x86 版をダウンロードします。

1.5 セットアップ

image Next をクリック

image Add or remove を選択。

image
上の矢印の部分をクリックしてメニューを表示させ、「Entire feature」をクリックし、全部を有効にする。

image Next をクリック

imageNext をクリック

あとは、「Install」を押し、画面に従い完了させます。


2.拡張パックのインストール

今のSUA の状態ですと、純粋な UNIX で、GNU なソフトウェアは一切入っていない状態です。
結構 Linux 使っている方ですと、それが無いととてつもなく使いづらいかとおもいます。

そういえば、
このSUA は Microsoft が開発したものではなくて、Interix 社というところが作ったようで。
Interix 社のウェブサイトに追加パックとして、GNU系のソフトウェアをわんさか入れてくれるソフトが転がってます。

これを入れると、wget や vim といった超基本的な物から、
Python や PHP や Perl や Apache や GCC や、何でもかんでもわんさか入ります。

まさに Windows 上で動く UNIX ってところでしょうか。
cygwin でもいいって声が聞こえてきそうですが、パッケージ管理もあって、自由に削除、追加、アップデートが出来たり、
Microsoft がサポートしているので、OS との関係性も良さそうですし。環境を取り除くのも楽ですし。ってことで。

1.下記ウェブサイトにアクセスします。
SUA Community Microsoft Windows Subsystem for Unix-based Applications, Interix and SFU
(http://www.suacommunity.com/SUA.aspx)

image
ウェブサイト下部にある、「Complete Toolset」をダウンロードします。

なおここでは、64bit 環境の場合は上と下、両方を。
32bit 環境の場合は、上だけダウンロードします。

また、ダウンロード時は、ドライブ直下にファイルを置かないと誤作動の原因となるので、
注意して下さい。

2.コマンドプロンプトを「管理者」として立ち上げて、インストール。
image

image
立ち上がりましたら、

image
対象ドライブの変更を行った後、 cd コマンドを用いて、ドライブ直下のダウンロードされた場所に移動します。

image
(私の場合は Z ドライブにダウンロードしました。)

その後、ファイル名を打って実行させます。
(「pkg」と打って、TAB キーを押して補完させると便利。)

この際、64bit 環境の方は、
「pkg-current-bundlecomplete60x64.exe」を先に実行し、
その後、
「pkg-current-bundlecomplete60.exe」を実行すると良いかと思います。

すべて完了しますと、インストールは完了です。


追記事項。

先ほども述べましたように、これ、パッケージ管理機能が付いてます。
中身はUNIX のエミュレーションですので、
pkg_update や pkg_add などを使います。

搭載コマンドのリファレンスについては、
http://freebsd4-jman.kandk.co.jp/
このあたりを見ておくといいかと思います。

よく使うと思われますが、
「apt-get update; apt-get upgrade」 or 「yum update」と同様のことをするのは、
「pkg_update -a」で実行可能です。

ただ、リポジトリが新しくなっているのか微妙ですが、エミュレーションの面から FreeBSD や NetBSDなどの
リポジトリが使えるんじゃないかとにらんでます。

また、Cコンパイラに関して、
先ほどのパッケージを入れると gcc が入りますが、それ以外にも、
C89_COMPILER やそれに付随する変数を設定すると、
cc コマンドで Visual Studio のコンパイラがコールできるようになります。

gcc が入っているので、なんだかなーとは思いますが、Cは細かく仕様が異なる部分がありますので、
必要な方は是非。

Windows Anytime Upgrade 使ってみる。

お財布の中身からして、多分一生使わないだろうと思っていた Anytime Upgrade さん。
使う機会がなんと出来てしまったので、使ってみます!

心の中は超わくわくてかてか。

わくてかは重要です。

image
れってごー! ってことで今回は「アップグレードキー」によるアップグレード。

image

image
認証が通ると、同意して下さい といわれるので、すかさず「同意します」を光の速度でクリック
・・・いや、ちゃんとライセンス読まないとだめよ。

image
アップグレードしちゃうよ。と聞かれるので、アップグレードをクリックします。

image
処理が始まるので待ちます。

なお、この際「システムの復元」を無効にしている場合、
エラーが起きますので、無効にしてある場合は一時的にONにしましょう。

WP_000027
「Windows のアップグレード中」 なる表示が出て、処理が行われていきます。

image

10分後、めでたく Ultimate になりましたとさ。 めでたしめでたし。

PLANEX Mini-102M を導入してみる。

WP_000012 プリンタが複合機なので、Linux サーバで共有するとスキャナが面倒な事になるってことで、
プリントサーバ導入してみました。

WP_000011家に帰ってきたら届いてました。まる。

WP_000019パッケージ開けたらこんな感じ。


本来ならここで「動きました!」で終わるんですが、
これ、相当のくせ者でした。


image

この製品。某K社のレビューを見ると、こんな感じ。

かなりよろしくないです。

つかってみた –> 接続出来ねーぞ。こら

ってことで。いろいろとやってみました。


マニュアルはここ: http://www.planex.co.jp/support/download/print/mini-102m.shtml

とりあえず現時点で、Windows 7 64bit ですと、ユーティリティソフトウェアが正常動作せず、
32bit 環境が必要って事が分かりました。

でも、インターネットプリンタとしては使えるので、その手法を。

Windows と Mac

http://www.planex.co.jp/support/download/print/mini-102m/v2/html/menu-3-7.html

ここに説明があるので割愛。

Ubuntu

プリンタの設定画面をだす。

image「追加」をクリック。

imageプリンタサーバのIPアドレスを入力し、「検索」を押す。

imageキューに「p1」と入力して進む。

05利用しているプリンタメーカーを選ぶ。

06利用しているプリンタを選ぶ。
無い場合は近い型番を選んでおけば、動作してしまうことが多いです。

07名前をつける。特にこだわらなければそのまま「適用」を。

08テスト的に印刷させる。

09あとはこの画面を見ていると、いい感じで行くことが分かります。

とりあえずこのような感じ。です。

インターネットプリンタとして利用すれば、ほとんどの機器で使えそうですが、
ユーティリティソフトウェアを用いて、双方向通信をやるためには、Windows x86 を持ってくる必要がありそうです。