当ブログは移転しました。

C#で音声変換する

最近C#を使ってwavやmp3,aacの変換を行う機会があった.
思ったよりもいろいろ試してみることになったので,メモとして残しておく.

NAudio

C#でオーディオを扱うにあたって,いろんなことができるのがNAudioである. mp3やaacに簡単に変換できるようなメソッドが備わっているので,最初はこれを使う予定だった.

naudio.codeplex.com

ところが,変換機能を使えるかどうかはOSに入っているコーデックに依存するため,Windowsのバージョンによっては動かないものもあることがわかった.

markheath.net

自分が使用している開発環境(Windows7)では使えなかったため断念.ちなみに,常用しているWindows10のマシンでは動いた.

NAudio.Lame

他のライブラリを探してみたところ,NAudio.Lameというものを発見.

NuGet Gallery | NAudio.Lame 1.0.4

外部dllを入れる必要があるが,wavとmp3の相互変換が可能になる. ただし,aacには対応していない.

Expression Encoder

さらに他のライブラリを探していると,Expression Encoderという,Microsoft謹製のライブラリを発見.正確にはエンコードソフトのsdkなのかな?

Overview of the Expression Encoder SDK

www.nuget.org

しかし,変換機能は有料版じゃないと使えないとのこと. 読みづらいドキュメント読んで頑張ったのに,なんということだ…

Media Tool Kit

ffmpegのラッパーを見つけた.インストールにやたら時間がかかるというところを見ると,ffmpegを内包してるっぽい. コードも簡単に書けるし,とりあえずこれを使ってみることにした.

www.nuget.org

パッケージマネージャからインストールしたら,以下のように記述して使える. ファイル名の拡張子を変えてやることで変換先の形式をかえられるようだ.

シン・ゴジラを見てきた

www.shin-godzilla.jp

先週末にシン・ゴジラを見てきた.普段映画を見に行くことはめったにないのだが,ゴジラ映画はものごころついたときからビデオでよく見ていたので,なんとなく見ておかないといけない気がしていた.それならせっかくだし映画館で見てみようということで行ってきた.

人気映画のチケットをとるには朝から映画館へ行って並ぶ必要があるという記憶だったが,今はそうではないらしい.ネットから予約してクレジットで決済,なんと視聴席までその場で決めることができる.ちょっと前に作ったクレカが意外なところで役にたった.

www.tohotheater.jp

肝心のシン・ゴジラについてだが,「これだよこれ」という感じだった.昔見ていたときはゴジラのエネルギー源についての話などは分からなかったので,改めて一から全部みることができた気分である.ゴジラってとにかく「最強・最恐」ってイメージで,目的もなくただただ街を破壊しつくすシーンが子供心に一番興奮していたのだが,今作でもそれを見ることができた.破壊光線も健在である.

この歳になってみると,自分だったらどのタイミングで避難できるだろうかとか,備えは足りるのかとか,いろいろと考えてしまうことに気づいた.作中でも言われているがゴジラって存在自体は自然災害と変わらないので,かえって宇宙人などよりもリアリティがある.「ゴシラ災害対策マニュアル」って本当にありそうだし.

映画の作りこみや伏線の貼り方についてはweb上でたくさん議論されているので,あえて書かないことにする. 童心に返ることができて楽しかった.

Evernoteからの移行先について考えた

f:id:salmon2073:20160812152250j:plain

はじめに

普段テキストの管理にはEvernoteを利用している. シンプルで使いやすく,動作も軽快なため大変重宝している. しかし,そんなEvernote料金体系が変更になり,無料版では同期できる端末が2台までに制限されることになった.

blog.evernote.com

2台の内訳にはスマホも含まれるため,メインのPC + スマホの組み合わせで埋まってしまうことになる. 例えば,外出用のノートPCとデスクトップPCを使い分けている場合には,スマホと合わせて3台になるため制限台数を超えてしまうのだ.

今回の料金プラン変更を機にEvernoteから別のサービスに乗り換えている人もいる. 今後さらに制限が厳しくなるかもしれないと考えると,今のうちに移行先を探しておくのが賢明だろう.

そこで,乗り換え候補のサービスについて考えてみることにした.

OneNote

Microsoft OneNote | デバイスに対応したデジタル ノート作成アプリ

Evernoteからの移行について検索すると,候補として最も有力と言われているのはOneNoteのようだ. Office製品の一つだが無料で使用することができる.Evernoteからの移行ツールが公開されているため,移行も容易である. Evernoteテキストエディタのようなインタフェースである一方で,OneNoteはテキストの配置が自由,ペン入力にも対応しているなど,「紙」のような使い方ができるのが特徴である.

確かに移行先として適していると思い,私も実際に使ってみた…のだが,どうも操作感がしっくりこない. 一番気になるのはテキストボックスがチラチラすることである. 普段テキストは左につめて上から書いていくことに慣れているため(例えばブログもそうである),自由度の高すぎる記入スペースはかえって書きづらいと感じてしまう.

逆に言えばそれ以外に大きく気になる点はなかったので,OneNoteの編集スタイルになじめる人にはお勧めである.

Google Keep

chrome.google.com

続いて多く言及されていたのはGoogle Keepである.「ノート」というよりは「メモ」をとる感覚に近いツールで,ボードに付箋を貼り付けるようにして管理する. 便利な機能がそろっていて,リマインドしたり他の人と共有したりといったことができる.

ただし,残念なことにノートブック機能がない.そのため,保存したノートをカテゴリに分けて整理するのは難しい. もちろん検索機能はあるので,気軽にメモをとりたいシーンでは活用できるだろう.

Simplenote

simplenote.com

こちらはEvernoteを使う前に私が使っていたサービスである.テキストの管理に特化しているサービスで,使い方に迷いようがないほどシンプルなツールである. 以前使用していたときはWindows用のデスクトップ版はなかったが,今は公開されている.マークダウン形式での記述に対応している.

ノートブック機能はないが,タグをつけることができる.エディタはシンプルでEvernoteに似ている. あと画像さえ貼り付けることができれば完璧なのに…と思っていたらマークダウンで記述してやればプレビューで見れるらしい.(一度同期すればオフラインでも可)

終わりに

ここまでいくつか候補を挙げてみたが,個人的にはSimplenoteが少ないコストで乗り換えられて良いように思う. しばらくはEvernoteとパラレルで使ってみて,問題ないようであれば移行してみたい.

MinecraftサーバのログをSlackに流す

f:id:salmon2073:20160805234813p:plain

はじめに

自前でマイクラ鯖を建ててマルチプレイをしていると,24時間出入りできて楽しい.
鯖内のログイン履歴やチャット履歴は自分がログインしてないときでも残る. これを共有できれば,自分がいない間にあった出来事や鯖にログインしているメンバーの確認などがマイクラを起動しなくても可能になる. また,ゲーム中にメモした座標などがログアウトしたあとにも残るので大変便利なのだ.

ログを共有するにはチャットサービスのbotにしてしまうのがよい. ある程度のセキュリティに期待できるし,お気に入り機能や通知機能などが最初からそろっている. ちょうど鯖メンバー用のSlackチームを作っていたので,今回はそれを利用することにした.

実装

Rubyのslack-ruby-clientを用いて書いてみた. まずはgemのインストール.

gem install slack-ruby-client

minecraft_server.jarを設置しているディレクトリと同じ階層に以下のプログラムを設置.

slackのアクセストークンを取得してきて書き換える.アクセストークンの取得方法は例えば以下の記事を参考にするとよい. joesbar.blog.jp

チャンネル名を書き換えよう.結構な量のログが流れるので,専用のチャンネルを新しく作るのがおススメ. 通知したいチャンネルにbotがいるか確認することを忘れずに.

あとは実行すれば鯖内の入退出や会話,死因や称号の情報がSlackに流れてくる.エラーが疑われる場合は4行目をコメントアウトしてデバッグしよう.

おわりに

そのままの状態だとサーバの警告なども拾ってしまうので,運用する際にはある程度フィルタリングするのがよい.

うちの鯖のメンバーには今のところ好評である.メモ機能としても活躍している. 他の人がプレイしている情報を見るとついつい自分もやりたくなってしまうので,時間を溶かしすぎないようにしなければ.

f:id:salmon2073:20160805235700p:plain

W32TeXとTeXstudioでWindowsにTeX環境を構築する

所要時間:約30分

TeXで文章を書いてPDFを出力できるようにするには,

  • TeXディストリビューション
  • TeXエディタ
  • の二つのインストール作業を行う必要がある.

    TeXインストーラ3」を使うとこの作業を全自動で行ってくれるので大変便利.
    以下のサイトにインストール方法が詳しく書いてある.

    簡単LaTeXインストールWindows編(2016年4月版)

    ※2016年7月現在,W32TeXのダウンロード元が上から2番目になっているが,そのままだと情報取得に失敗するので3番目に変更する.

    この方法だとエディタとしてTeXWorksがインストールされる.個人的にはもうちょっとIDEっぽいやつが使いたかったので, あえてTexWorksのチェックを外し,TeXstudioをインストールすることにした.
    以下のリンクから最新版をダウンロードして手順通りに進めればok.

    TeXstudio

    TeXstudioはインストール後にすこしだけ設定を変える必要がある.
    「オプション」→「TeXstudioの設定」から,

  • 「コマンド」の一番上「LaTeX」のlatex.exeをplatex.exeに書き換える.
  • 「ビルド」の「ビルド&表示」を「DVI->PDFチェーン」に変更,「既定のコンパイラ」をLaTeXに変更する.
  • これでipsjのテンプレートからビルドを行うことができるようになる.