忍者ブログ
mirac cafe という名の不思議なブログ

※ ブログ等での私の投稿は個人の見解によるものであり、 所属する組織の見解ではありません。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

実家のパソコンが新しくなったので、GWに新旧パソコン間でデータ転送をした。

詰まったところと解決策をメモ。

・フォルダの共有
 新パソコン (win7) 側のフォルダを共有した。
 winXP 側で共有フォルダの検索に数分かかるので、気長に待つ。

・このコマンドを処理するのに必要な記憶域をサーバーで確保できません
 解決策:レジストリをいじって、IRPStackSizeとやらを増やした。
 ファイル転送などでは IRP (I/O Request Packet) が大量にやってくるので、
 処理がちょっと遅れたりすると詰まってしまうらしい。
 なぜQueueじゃなくてStackなんだろうとか謎はあるけど、
 デフォルトの 0x0F を 0x30 にしたら問題なく動くようになった。
 参考:http://www.iltt.info/page/information/contents/20110209.htm

・ファイル名が長すぎます。別のファイル名を指定してください
 解決策;そのファイルはコピーしないことに。
 windows/winsxs/manifest とかいうディレクトリの中にやたら長いファイル名のファイルが。
 ファイル名の長さに制限を与えているのは microsoft なのに、
 自分のところでそれを守らない (もしくはギリギリまで使う?) とかどうなんでしょうねぇ。
PR
やりたいことがいっぱいある.
多すぎてやりたいことを忘れてきたので,とりあえずめも.

wikipediaのscanfの項目, 仕様が問題点とかかれているので書き換え
wikipediaのICPCの項目, 古い上にサブリージョンの説明がないので書き換え
icpc ob/og会, 新しく入った人向けのページが充分でないので追記
同志社みたいにicpcやってないところへの布教活動
harkのメモリリークなんとかする
harkのソースコードきれいにする

あれ,もっと沢山あった気がするのだけど...汗

追記:
scanfの使い方ガイドをつくる
C言語わかんないひとが頑張る手伝いをするサイトをつくる
あけましておめでとうございます。

元旦はプロファイラ(プログラムのどこが遅いとかを教えてくれるプログラム)探しをしてました。

14日が論文の締め切りなんで頑張らねばー


以下備忘録。

$ python -m cProfile -o hoge.prof main.py
$ pyprof2calltree -i hoge.prof -k

とりあえずこれでメソッド単位のプロファイルができてGUI上で見れる。
GUIとかいらなければ以下のソースで

 import cProfile
 import pstats
 import main
 prof = cProfile.run("main.doit()", 'hoge.prof')
 p = pstats.Stats('hoge.prof')
 p.strip_dirs()
 p.sort_stats('cumulative')
 p.print_stats()

行単位で見たければ cProfileじゃなくてhotshotをlineevents=1で使う。

 import hotshot
 prof = hotshot.Profile('hoge.prof', lineevents=1)
 import main;
 prof.runcall(main.doit)
 prof.close()

1行ごとに保存されてるらしいけど、このままでは1行単位で見れなさそうorz
とりあえず、さっき出てきたGUIのやつで使える形式に変換。

 $ python hotshot2calltree -o hoge.prof.out hoge.prof

(これ結構時間かかる)
んでGUIを実行

 $ kcachegrind  hoge.prof.out

最後の2操作が面倒だから、なんか簡単にしたいのだけど今のところ不明でする。

kcachegrindはyumで入れれた。
hotshot2calltreeはkcachegrindのソースの中のconvert部分に入っていた。
もしかしたらそれ以外に簡単に入れる方法があるかも?
pyprof2calltreeはwebからソース落としてきてeasy_installしました。

さて、これぐらい書いたら次回迷わずに使えるかな??
@Fedora14, i686

PyUblasをダウンロードしてくる
$tar xvzf PyUblas-2011.1.tar.gz
$ cd PyUblas-2011.1
$ ./configure.py --boost-inc-dir=/usr/include/boost/ --boost-lib-dir=/usr/lib/ --boost-python-libname=boost_python-mt
  yumするときはboost-pythonなのにlib名はboost_python とかひどす.
  -mtが何を意味するのかはよくわかんない.
$ make
$ sudo make install
  何か実行したディレクトリの下にファイルを大量に作成するみたいで, 研究室の環境だと上手くいかなかった(NIS+NFSのせい?)
  とりあえずmkdirに失敗するっぽいので適当にパーミッション開いて回避
$ cd test
$ g++ -fpic -shared -o sample_ext.so -I /usr/lib/python2.7/site-packages/PyUblas-2011.1-py2.7-linux-i686.egg/include/ -I /usr/include/python2.7/ -lboost_python sample_ext.cpp
$ python sample.py
  あれ, 失敗した
   -> sample.pyの中で, import pyublas が import sample_ext より前にくるように順序を変更
$ python sample.py
  sample.py を書き換えたら今度は成功 :)
音素アラインメントを取ろうとしたら、相当ハマったので備忘録。

音声系でない人のために書いておくと、

例えば「あいうえお」という発言した音データが与えられたときに、


何秒のところで「あ」と言っていて、
何秒のところで「い」と言っているのか、

とかそういうことを知りたかったわけです。


ということで問題設定

入力:音声信号と、その音素列
出力:アラインメント結果


juliusという音声認識器の、アラインメント機能を使うことにしました。



言語モデルとして文法モデルを使って、

grammerファイルとvocaファイルを適当に設定してやれば、

juliusに好きな文章列を出力させることができるはず、という荒っぽい考え方。


grammerファイル

  S: NS_B S01 SP S02 SP NS_E
 
vocaファイル
 
  % NS_B
  NS_B silB
  % NS_E
  NS_E silE
  % SP
  SP sp

  % S01
  S01 sh i t a n o
  % S02
  S02 o t: o t o n o
  % S03
  S03 k o e g a k i k o e t a
(音素は適当...あってますかね?)

この2つからmkdfa.plを使ってDFAを作る。

で、juliusを以下のように実行。

julius -C hogehoge.jconf -input file -filelist hogehoge -palign -sb 5000

palignは状況に応じてwalignとかに変えてもOKです。

注意点が2つ。

1. palignなどのアラインメント出力は、sp(ショートポーズ)が正しく反映されない。
2. sbの引数に大きな数字を与えておく

  -sb score
    スコアエンベロープの幅.各フレームごとに,それま で
    の 最大スコアからこの幅以上離れた部分についてはscan
    しない.値を小さくすることで第2パスの認識速度が 速
    くなるが,その分計算誤りが起こる可能性が高くなる.

 
2つ目に気づくのにだいぶ時間がかかって、本当大変でした。

sbを大きくしなかった場合、アラインメントしたい文字列が長くなると、

hypothesis stack exhausted, terminate search now

というエラーが出て終了してしまいます。

ネットの掲示板にも完全な回答は寄せられていないようですが、

とりあえず自分の場合は5000とか50000とか、

とにかく大きくしておけば解決できたので、

ひとまず満足しています。



 

みなさんお元気ですか??

東北や関東が大変そうですが、

少なくとも今は自分がどうこうできる状況ではないので、

なんか微妙な罪悪感があったりなかったり。。



数カ月前に事情あってpythonを使い始めたのですが、

妙に大量のメモリを確保されてRAM使いきったり、

そもそもプログラムが遅かったりするので、

一部をc++で書きたいなぁと思っていました。

で、昨日の夜からboost_pythonのさわりを学んでみたり。
http://www.kmonos.net/alang/boost/classes/python.html
http://d.hatena.ne.jp/moriyoshi/20091214/1260779899

あとnumpy.arrayも使いたかったので、

Pyublasとかいうやつを触ってみたり

http://documen.tician.de/pyublas/index.html

サンプルがうまく動かないと悩んでいたのですが、

コンパイルオプションの -lboost_python を
-lboost_python-mt にかえたら治りました。

-mtって何なのだろう...今度boostな人に聞いてみましょうかね.

以上プチ備忘録でした

(追記)研究室のPCでは-mtを付けたら動かなくて、付けなかったら動いた。謎だなぁ。。
すいません完全に自分用の備忘録です…。


nvidiaのグラボ、カーネルアップデートすると使えなくなる。

GUIで起動する直前で画面真っ暗になるみたいな感じ。

CUIから起動するとこんなエラー。

FATAL: Module nvidia not found.
(EE) NVIDIA: Failed to load the NVIDIA kernel module. Please check your
(EE) NVIDIA:     system's kernel log for additional error messages.
(EE) Failed to load module "nvidia" (module-specific error, 0)


どうやらカーネルアップデートするたびにドライバ入れないといけないらしい。

CUIの状態からrootで/home/いつもの/NVIDIA/に行って、

その中で最新のやつを走らせればいい。

なんかいろいろ聞かれるけど基本Yesでよさそう。

カーネルリビルドか何かもしだすけど、

まぁ仕様がないので気長に待つ。

ま、後はいつも通り使えますです。

source-highlightをインストールしてたら

Boost::regex library not installedって出てきたので

Boost入れたりなんやりしてもやっぱり駄目だったので

configureファイル見てみたら単にc++ソースをコンパイルしてるだけだったから

なんでコンパイルできんのさーと思ってたら単にg++入ってなかっただけだった。。

gcc-cppはcのプリプロセッサ用であってg++はgcc-c++らしいですね、どうやら。


分からない人向け:

子供に"アイスがないよー!"って言われたから、

アイスいっぱい買ってきて与えてやったのに、

1時間後には"アイスがないよー!"って言われておかしいと思ってみてみたら、

実はそもそも家に冷蔵庫がなくて、アイスがとけてただけだったったって感じ。

んー、、何か違うけどw

"冷蔵庫がないよー"ってエラーを出してほしかったのですよ、私としては。
cat text|tee log|head -n 10

とかすると楽しいことになるみたい。
ちょと無理やり使った感があるけどw
teeコマンド便利ー。

そして初めてトラックバックとかいうのを使ってみた。
できてんのかこれ?w
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新コメント
[11/30 kamae]
[04/30 mirac]
[04/29 渚]
[01/20 渚]
[01/01 mirac]
[12/09 mirac]
[10/31 mirac]
[03/14 mirac]
[08/10 404ななしさん]
[08/09 halwhite]
最新記事
最新トラックバック
ブログ内検索
忍者ブログ [PR]