ソフトウェア

自作 Python ライブラリ

aquestalk.py

AquesTalk2 WinおよびAquestalk Winを Python から使用します。

使用例

サウンドデバイスから発声させる。

>>> import aquestalk2
>>> aquestalk2.talk(u"あしたの/て'んきわ、いちにちじゅー/はれ")

音声をファイルに保存する。

>>> import aquestalk2
>>> aquestalk2.write_wav(u'yorosidesuka.wav', u"よろし'いですか?")

音声をバイナリ列として取得する。

>>> import aquestalk2
>>> wav_data = aquestalk2.synthe(u"ぱいそん")
>>> wav_data[:4]
'RIFF'

reflexa.py

連想検索エンジン Reflexa を Python から使用します。

sholiday.py

日本の祝日を判定する jholiday.py の私的改造版です。

変更点

引数に datetime.date オブジェクトを受け取る holiday_name_date 関数を追加しました。Python 3 系でも 2to3.py で変換すれば使えるようにしました。ある期間(デフォルトは2001年から2020年の間)の祝日をキャッシュし、期間内ならば速度が上がるようにしました。

cjholiday

日本の祝日を判定する jholiday.py の C エクステンション版です。

変更点

コンパイルが必要である代わりに Pure Python よりも速度が速くなっています。引数に datetime.date オブジェクトを受け取る holiday_name_date 関数を追加しました。

qreki.py

旧暦および六曜を算出します。オリジナルは QREKI.AWK です。

qreki.py ファイルのみで動作させることができます。しかし、 setup.py build を行って _qreki C エクステンションをビルドすることで、より高速の動作が可能となります。

使用法

>>> from qreki import Kyureki
>>> k = Kyureki.from_ymd(2009, 11, 27)
>>> print k
2009年10月11日
>>> print k.rokuyou()
友引

PyAviUtlControl (pyauc.py)

あじ氏の「AviUtl Control ver1.4」を使用することで AviUtl を Python から操作します。

KensirouLib

ケンシロウ進数の習得補助ライブラリ。あたたたたたたた。

「ケンシロウ進数」「ケンシロウ進数2」「ケンシロウ進数ランレングス圧縮版」をあつかうジョークライブラリです。通常は正整数に対して用いるものですが、独自解釈で、バイト列も扱えるようにしています。

使用方法

>>> import kensiroulib.ver1 as ver1
>>> s = ver1.encode_int(128)
>>> print s
あたたたたたたた
>>> ver1.decode_int(s)
128
>>> s = ver1.encode('kensirou')
>>> print s
たああたあたああたああたたあたあたああたあああたたあああたたああたああたあたたあ
たあああたたあたたああたああああたあああたあたあ
>>> ver1.decode(s)
'kensirou'

smithnumber.py

スミス数という数を扱うためのライブラリです。素数などの有名な数と比べると遊びの域を出ないものではあります。このライブラリでは http://www.shyamsundergupta.com/smith.htm (英語)にて紹介されているスミス数の判定および、スミス数列の生成をおこなうことができます。

Python 2.6.4 にて動作確認しています。 version 1.0.1 にて Python 2.5.4 でも動作するよう修正しました。 version 1.0.2 にて Python 2.4.4 でも動作するように修正しました。

使用方法

>>> from smithnumber import smith_numbers
>>> for n in smith_numbers():
...   if n > 30:
...     break
...   n
...
4
22
27

その他

形態素解析エンジン MeCab Python バインディングの Windows バイナリ

Windows XP の MinGW を用いて MeCab の Python バインディングをコンパイルしてみました。

libmecab.dll, mecab-python, IPA 辞書の3つと mecabrc を組にして使ってください。 mecabrc は空のファイルでかまいませんが、辞書を指定しておくと便利です。たとえば、次のようにします。

dicdir = ipadic

簡単な使用例です。

>>> import MeCab
>>> s = u'すもももももももものうち'
>>> tagger = MeCab.Tagger('-r mecabrc')
>>> result = tagger.parse(s.encode('utf-8'))
>>> result = result.decode('utf-8')
>>> print result
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

PyAviUtlLib

Python の ctypes モジュールや Python/C API の勉強のために作成したものです。動機が不純(AviUtl を操りたい、ではない)であり、動作チェックはしているうちにはいりません。まともな動作は期待できません。 PyAviUtlControl のほうを使用してください。

AviUtl を Python から操作します。 PyAviUtlControl との違いはこれ単体で動作するということです。

あじ氏の「AviUtl Control ver1.4」のソースコードを参考に作成しています。

内容は ctypes モジュールを使用した aviutllib.py と Python/C API を用いた caviutllib.c の 2 つです。最初にできたのは aviutllib.py で、これを C 言語に再移植してできたのが caviutllib.c です。

caviutllib.c のコンパイルは Visual C++ 2008 Express Edition と MinGW(gcc 3.4.5) で確認しています。ソースは BOM 付の UTF-8 で書かれているので MinGW でコンパイルする場合は BOM を削除してください。

戻る