TTCGの今後

やりたいこと:
読み上げツールを使い、デスクトップに自動のニュース番組を実現すること。
このアイディア、すごくいいと思う。今年一番のひらめきか。

おはようございます。
弦巻マキのよくわかるニュースの時間です。

今日のNHKニュースは以下です。
1.東名で事故 3人死亡7人けが
2.日本漁船にロシアが照明弾か
3.高原町 すべての避難勧告解除
4.三重の養鶏場 鳥インフル
5.インド商工相 EPAに期待感
6.伊首相を買春などの罪で起訴
7.競泳 日本代表候補の合宿公開


1分後に自動的に読み上げます。


今日の天気をお伝えします。

(おわり)

みたいな?(笑)

関連するニュースを2chで探してきて、
「〜だと思う」、「〜なのです」、「〜みたい」みたいな
民の声を1つ抽出して、コメンテーターみたいに、ニュースの感想を
述べてみたりします。あーかぎりなく妄想が膨らむわ(笑)



読み上げ処理は、すでに公開しているツールで実現できている。
なので、RSSなどで公開されているニュースサイトの情報を取得し
コンテナに格納しておく。この際必要なのは、ニュースの本文と
そのニュースのURL。


以下のサイトの情報が役に立ちそう。
あとでよむ:
http://blogs.wankuma.com/kazuki/archive/2008/04/12/132894.aspx


めも:

しんぐるとんで、任意のオブジェクトを格納できるコンテナを実装したので
これに、ArrayList型などでデータを追加していく。


格納単位のArrayListオブジェクトは、次の提供元カテゴリ単位を想定。


A社ニュース−社会
A社ニュース−政治
A社ニュース−文化

B社ニュース−社会

C社ニュース−社会




これら1つひとつのリストオブジェクトの中に、それぞれのニュースの
RSSデータを格納していく想定。


コンテナへRSSからデータを取得して格納する人
(RSSニュース取得くんクラス)
コンテナから読み上げ支援ツールにニュースを渡す人
(RSSニュース受け渡しくんクラス)
この2人が、非同期で処理する想定。




技術的課題:
読み上げソフト本体への応答結果をどのように取得すべきか?!
ツールは再生ボタンをおしてるだけなので、読み上げソフト本体の
ことなど何もわからない。


まさか、3分で読み上げをきりあげたり、読む文字列の長さで読み上げ
終了時刻を想定したりとかは、いやだ。。。


ProcessWalkerとかいうソフトでプロセスの中身をみたところ(写真)
読み上げソフト本体が読んでいるときは、スレッド数が4になるみたい。
読み上げが完了すると写真のように、3になっているので、この数を
判定条件にすれば制御可能になるっぽい。
でも、スレッド数ってどうやってとるんだろう。まぁ、このProcessWalkerと
おなじようなやりかたができるはず。(信じて)


【追記】
CreateToolhelp32Snapshot関数を使用すれば、実行中プロセスのスレッド数が
とれるみたい。
この関数があるのは、なんとkernel32.dllです。


kernel32.dll : 「OSの根幹であり、プロセス、メモリや周辺装置を管理」


えらいこっちゃ。こんなのさわりたくない。
C#でも宣言してインポートすればよさげですが、
もはやC#VBも、やりたいほうだいだな。


参考:
http://nienie.com/~masapico/api_CreateToolhelp32Snapshot.html


Win32 APIの何たるか
http://yokohama.cool.ne.jp/chokuto/win/win32api.html

TTCG

TTCG ver1.0.0.1
https://www.webfile.jp/dl.php?i=854391&s=28405ed58a27d175a89c


◆概要
「VOICEROID+ 民安ともえ」用の読み上げ支援ツール「TTCG」です。

◆インストール
圧縮ファイルを解凍し、「VOICEROID+ 民安ともえ」のVOICEROID.exeと
同じ場所に配置する。

◆設定ファイル
HTMLから抽出した文字列を正規表現をもとに切取ります。(不要文字を削除)
PREタグには、前方向への削除文字を正規表現で指定します。
(抽出文字列を単一行モード)
POSTタグには、後ろ方向への削除文字列を正規表現で指定します。
(抽出文字列を単一行モード)
LINEタグには、行単位での削除文字列を正規表現で指定します。
(抽出文字列は複数行モード)

HTML解析時の正規表現を外に出し、XMLファイルにした。
これにより、ユーザーが目的のHPからの文字列抽出を
カスタマイズできるようにした。

◆使い方

メジャーなニュースサイトへの対応状況(エンコードを指定して読み込む)

サイト名 文字コード 対応状況 URL
読売新聞 Shift_JIS http://www.yomiuri.co.jp/
毎日新聞 UTF8 http://mainichi.jp/
産経新聞 UTF8 http://sankei.jp.msn.com/
Japan Times (未検証) - -
NHKニュース UTF8 http://www.nhk.or.jp/news/
朝日新聞 EUC_JP http://www.asahi.com/
日経新聞 UTF8 http://www.nikkei.com/


TTCG.exeを起動しウェブサイトなどでURLをコピーすると、
ツールのURL欄にURL文字列が張り付きます。
その状態で、HTML解析用のエンコードを指定して「URLから取得」ボタン
を押下します。
すると、読み上げ対象欄に文字列が抽出されるので、「読み上げ」ボタン
を押して読み上げさせます。(注意:読み上げソフトがないと読み上げません)

クリップボード読み上げをチェックしておくと、Ctrl + Cで選択した部分を
自動的に読み上げさせます。読み上げ途中でCtrl + Cで選択した場合
過去の読み上げ対象をとばして、読み上げます。

「VOICEROID+ 民安ともえ」が起動していない状態で「読み上げ」ボタンを
押下すると勝手に起動して、左上に移動し、読み上げます。


即読み上げのチェックボックスをつけました。
これをチェックした状態で、URLをコピーすると
即読み上げ処理が始まります。
同じURLを二連続でコピーした場合は、何もしません。(仕様)

◆変更点
・即読み上げのチェックボックスをつけました。
これをチェックした状態で、URLをコピーすると
即読み上げ処理が始まります。
同じURLを二連続でコピーした場合は、何もしません。(仕様)
文字コードを自動判定するよう対応しました。


◆注意点
現状は、「VOICEROID+ 民安ともえ」の 位置を・・・
再生ボタンや停止ボタンの位置を左上からのデフォルトサイズの画面サイズで
みているので、左上においておかないと動作しません(笑)
動作には、.NET Framework 4が必須です。


◆今後の対応予定
・ボタンハンドルの取得によるボタン押下処理の実現
⇒再生、停止ボタンのハンドル値は取れているのですが、PostMessageなどで
なぜかマウスの左クリック処理が実現できません(汗)
優先度低。
ウインドウを最小化状態で処理したい。。。

・むりなら、任意の位置、サイズのウインドウへの対応
⇒優先度低。

・2ch、BBS、ブログへの対応
⇒今はニュースサイト系だけ優先で対応しています。
はてなのブログとか見ると、失敗・応答なしになってしまっていると思います。
(あまりにも長いサイトをみることを想定していないため、いったんタグを
抽出した本文を1行にして正規表現で不要部分を削除しているので、
処理に時間がかかっています。
時間の余裕があるときに、アルゴリズムを見直して性能改善をはかる予定です。)

棒読みちゃんへの出力対応
⇒ニーズがあれば・・・。

・学習機能がほしい。辞書登録の入力支援ができないか。
⇒検討中です。むずかしそうです。


TTCGはフリーソフトです。
個人・法人に限らず利用者は自由に使用することができますが、
著作権はすべてヴェナレスにあります。
本ソフトを利用した事によるいかなる損害も作者(ヴェナレス)は一切の責任を負いません。
自己の責任の上で使用して下さい。

変更履歴
2011/02/06 Version 1.0.0.0 新規作成
2011/02/15 Version 1.0.0.1 即読み上げ処理を追加、
ツールウインドウの最大化に対応、文字コード自動設定対応

MMDAgent

自作ツールの改良方向として、音声入力・音声認識でPCと対話して、
ウェブの読み上げや、情報提供など
いろいろやってもらえたらいいな、と思っていたら
既にそういうシステムが存在してるっぽいので驚いた。
MMDAgentというものらしい。

(MMDAgentとは、名古屋工業大学国際音声技術研究所
によって作成されたオープンソース
音声インタラクションシステム構築ツールキット)

紹介記事をみつけたので、はっておく。
あとでよむ:
http://vocaloid.blog120.fc2.com/blog-entry-7571.html

SF映画でよくある人口知能コンピューター。
ありそうでなかった。

大原まり子が昔書いたSF「ハイブリッドチャイルド」
に登場する汎用型ハウスキーパー
アーサー・C・クラーク
2001年宇宙への旅で登場する
HAL9000とか。

現在の技術では人口知能はむずかしいけど
あらかじめシナリオを用意しておいて
人口無能コンピューターならできそうだね。


VOCALOIDやVOICEROIDが、あたり前品質になった今、
今後求められる方向は
MMDAgentのようなプラスαの機能なのは間違いない。
(今までない、魅力的品質。世の中のニーズがあると思うんですが。)

近い将来、こういうソフトが
キーボード不要のコンピューターを
実現する日が来るかもしれないですね。

音声認識でぱそこん操作


以前紹介したMMDAgentとは別に、音声認識でパソコンを操作するソフトを
開発をしていた人がいて、ニコニコ動画にでてました。

MMD】MMDAgentに対抗してみた(ミク版)【音声認識

α版らしく動作は安定していないようですが
なんかびっくり。動画で紹介されているログインパスワードを最初に
音声入力して、このシステムに入るみたいです。

ブラウザ操作や音楽の再生などができるみたいです。
高機能ですが、操作方法が分からない部分があって困りそう。
しかし、すっごいよくできているなぁと感動しました。


α版が公開されているようです。
http://tyan.blog.shinobi.jp/

棒読みちゃんでも使われているsoftalkを使用しているらしく
softalk.exeを所定の場所に配置する必要があるみたいです。
これしてなかったので、初回実行時に音がでなかったようです。

あと・・・3つくらいのexeが、不穏な動作をしていると
Nortonの警告がでました。ちょっと怖かったので
今は安全なパソコンで動作させてます(汗)

α版らしく動作は安定していないようですが
なんかびっくり。動画で紹介されているログインパスワードを最初に
音声入力して、このシステムに入るみたいです。

ブラウザ操作や音楽の再生などができるみたいです。
高機能ですが、操作方法が分からない部分があって困りそう。
しかし、すっごいよくできているなぁと感動しました。


α版が公開されているようです。
http://tyan.blog.shinobi.jp/

棒読みちゃんでも使われているsoftalkを使用しているらしく
softalk.exeを所定の場所に配置する必要があるみたいです。
これしてなかったので、初回実行時に音がでなかったようです。

あと・・・3つくらいのexeが、不穏な動作をしていると
Nortonの警告がでました。ちょっと怖かったので
今は安全なパソコンで動作させてます(汗)

自作ツールの読み上げ支援ソフトと組み合わせて使ったら、音声だけでニュースサイトを
よみあげてくれたが、人間がやった方がはやいかもなーと。
良いソフトなのですが、ボクのニーズとちょっとちがう。

TTCG初版リリース

なんかてきとーに録画した動画だったので
下手すぎる。。。
動画をつくるにも、よくかんがえないとな!(笑)
やべーはずかしくなってきたw


「VOICEROID+ 民安ともえ」読み上げ支援ツールをつくってみた

詩想

初音ミクオリジナル曲「Starduster」

ただの音声データなのに、なんかいいね。

「世代を超えた何かが音楽の世界にもある」とNHKのえらい人がいってるし。
http://ascii.jp/elem/000/000/586/586184/index-4.html


【シングルトンの悪魔の回答】

(回答)
デスノートになりそこなったボクの「シングルトンの悪魔」たちも
美しい音楽や映画で、食虫植物のように人間をおびき出してあやつるといいかもね。

(別の回答)

『「ある悪魔が魂が欲しいけど人間の心ってガードが固く、
中々手に入らない。

悪の誘惑には抵抗がすごくて旨くいかない事が多い。
そこで悪魔は考えました。

あからさまな悪への行使ではなく、欲望という名の罪のほうが
心に隙を作れそうだと

そこで「何でも願いを叶えるよ」といって回りました。
だけどこれも失敗します。

願いを叶えるけど、魂をくれでは人は中々首を立てに振ってくれません。
さらに悪魔は悩み、とうとうある事を思いつきました。

「別の敵を作って、それを倒す力を与え、
正義の使者になれるという魅力を加えたら
どうだろう?」

その目論見は当たり、歯車は大きく動き出したのでした。
魔法少女まどか☆マギカ第193話スレより)』

→おお、これもよさげ。うしし。

ディーガ様のおかげで深夜アニメに詳しいのですが、これがこの冬もっとも
人気があるみたいですね。

坂本龍一はNHKのスコラの中で、音をずらしていくと
シンコベーションによって、音楽にグルーヴやリズムが生まれる、みたいな
ことを言っていたが、このアニメも同じことをやっている。
ある種の定型から、ずらしてやると、今までにない面白いものが生まれるってことかなー。
ネタバレを避けるために、あいまいに表現するが、ファンが食いついたのも
そういうズラした遊びの部分、自由度の中にあるのかもねぇ。
(ほかの作品では貧弱なイマジネーションしか生まないが、この作品では・・・)

シンコベーション:強調する拍の位置をずらしてリズムに変化を与えること

みたいなことを空想したり・・・。



あとでよむ:
まどマギキュゥべえ」はデキる営業マン?見事な交渉術をブログで考察
http://b.hatena.ne.jp/articles/201102/2421

ソース管理

ソースの管理のため、これまでJavaで、Subvertion 1.5を使用していたが
C#で作成したソースも多くなってきたことだし、Microsoft Visual C# 2010 Express に
ソース管理を導入しようと思い立つ。

しかし、無償版のExpressでは、VSS(Visual SourceSafe)や、
Subvertionを使用したプラグインAnkhSvnが使用できないようだ。

そこで、ちょっとめんどうだけどTortoiseSVNを導入してみた。
エクスプローラーにファイル管理機能をもたせるイメージです。


これを使えば、開発だけでなく、普段のファイル管理でも使えると
思います。


参考:

TortoiseSVNの基本的な使い方 その1
http://d.hatena.ne.jp/sinsoku/20100405/1270397683

また無償版のMicrosoft Visual C# 2010 Expressで困るのは、エディタで
変数をつくって、それからプロパティを生成しようと「フィールドのカプセル化」の
ショートカットCtrl + R, Eを実行しても動作しなかったこと。
無償版はこの機能がないみたいだ。
コードスニペット機能を使えば、get/setの構文を貼り付けられるけど、使いにくい。

http://social.msdn.microsoft.com/forums/ja-JP/csharpexpressja/thread/5b7fa610-c9ba-47db-bdf7-680feb5970b7/