Hatena::ブログ(Diary)

はがね亭 RSSフィード

2012-03-04

[]研究室に持って行ってた書籍一覧

持って帰るのが面倒くさいってレベルじゃなかったので、何冊の本を持って行っていたのかをチェックしつつ。順不同。

ちなみに、まだ十数冊研究室に残ってる…

2011-11-22

[]パワポにサウンドファイルを埋め込む方法

最近PowerPointBGMを入れるという作業をしなければならなくなったんですが,手持ちのPowerPoint 2003と2007では,MP3WMAMP4と言った,いわゆる圧縮された形式のサウンドファイルは.ppt(pptx)ファイルには埋め込めず,埋め込めるのはWAVE形式だけだったんですね.

2010はわからないですけど*1,そういうこともあって,WAVEで埋め込むにはBGMとして使うにはファイルサイズ大きすぎるし,結局,埋め込まずに相対パスで同じディレクトリに入れておけば再生されるようにして,お茶を濁したんです.

しかし,腑に落ちなかったので,なにか方法あるだろうと言うことで,遙か彼方に放り投げていた記憶の中から知識を思い出し,MP3ファイルを.pptに埋め込む方法をひらめいて試してみたらうまくいったので,記録しておこうと思います.

簡単に言えば,RIFF WAVE仕様を使うというものです.RIFF WAVEというのは,そのものWAVEファイルのことです.通常,WAVEファイルというと多くの人は,リニアPCMの無圧縮のものを思い浮かべると思いますが,RIFFというのはコンテナですので,実際には各種オーディオコーデックを利用できるのです.つまり,圧縮されたWAVEを使うと言うこと.

以下,手順です.MP3以外のコンテナの指定の仕方は僕はわかりませんので,圧縮形式はMP3になります.

  1. 元となるサウンドファイルを入手
  2. 固定ビットレートCBRMP3ファイル作成.可変ビットレートVBR)だと,3で使うソフト対応していないので,再生時間が変わってしまったりします.
  3. KKKKK.Net - K5 MP3 to RIFF WAVEダウンロードして解凍
  4. 2で作ったMP3ファイルを,3で解凍したフォルダの中のEXEファイルD&D
  5. MP3ファイルのあるディレクトリMP3圧縮されたRIFF WAVEを生成.

これで良いのですが,気をつけなければならないのは,PowerPointの設定.2003ではツール→オプション→[全般]タブの中の「指定するファイルサイズより大きいサウンドとリンクする」という項目の値を完成したRIFF WAVEファイルサイズより大きくしないと,結局リンクになってしまうので,埋め込みには成りません.f:id:hagane:20111123140129p:image:left

これだけ注意すれば,ある程度長いサウンドファイルでも圧縮して埋め込めるようになるはずです.サウンドファイルによっては,拡張子偽装するだけで埋め込めてしまうこともあるようですが….

…KeyNote?しらねーよ

*1:どうやら,2010では特に苦労することなく埋め込めるようですね.

2011-11-10

[][][]Pythonからデータベースを扱う時の注意

Python Database API Specification v2.0というものがありますが、使うさきのDBモジュール仕様が、それぞれ微妙に違うので注意です。

特に、cursor.execute()の (query[,parameter]) の部分の違いにはまってたのでちょっとだけ書いてみますです。

全部は試してませんが、とりあえず、僕がわかっているものだけ。

sql = u"SELECT * FROM table1 WHERE id = :id"
cur.execute(sql, { 'id': 1 })

上記はpgdb(Version 4.0)では使えませんでした。SQLite3では使えます('named')。

一方、

sql = u"SELECT * FROM table1 WHERE id = %(id)d"
cur.execute(sql, { 'id': 1 })

は、SQLiteでは使えませんでした('pyformat')。

また、

sql = u"SELECT * FROM table1 WHERE id = %d"
cur.execute(sql,  (4))

はSQLite3では使えません。SQLite3では、

sql = u"SELECT * FROM table1 WHERE id = ?"
cur.execute(sql,  (4))

で、発行できます

あわてて書いているので間違っている可能性もありますし、MySQL等ほかのRDBMSでは試していないので、なんとも言えませんが、こんなところです。