Category Archives: 人工知能

iBuffalo HDMI スイッチ

結構前から買ってあったiBuffaloのHDMI切り替え機(いつからBaffaloはiBuffaloになったの?)

自宅で2台同時(随時投稿用のマックを含めると3台)に立ち上げて仕事をするようになったので、メインモニターで使うことにした。

モニタ本体には、HDMIが2ポート付いているのだが、スイッチがタッチ式でモニタ下部の淵に付いていて、現状 Bose Companion 2 series II のPCスピーカーが置いてあり、指が入らない(BOSE Companion 2 の最安値検索サイトはこちら

Boseのスピーカーがあって指が入らないモニタのタッチボタン

 

今までリビングのテレビにマニュアルボタン(手で押すやつ)で切り替えるものを使っていましたが、赤外線で操作できるようにしたいが為に買っておいたもの。

将来的には、eRemoteに登録してアプリから操作できようにすることでスマホやPCからの操作が可能になります。リビングではすでにエアコン、扇風機、テレビ、BDレコーダーが登録済み。しかし純正のiPhoneアプリではプログラムするのには限界がありそう。

タイマーやパターンもできるのだが、結局iPhoneから使うとなるとまた画面を見てボタンの位置を確認が面倒になる。リモコン置き場まで行って、リモコンで操作した方がまだ早い。テーマやマクロ的な設定では信頼性も低い。(押して、何が起きるかわかる)

タッチデバイスの欠点は画面を見てボタンを押すところ。ブラインドタッチ的事はできない点。

Buffalo HDMI切り替えき同梱物

 

裏側には、アンテナと、アームのネジにつける為の機構が付いている。

リモコンの受信部分は長く、分離して貼り付けるようになっている(写真がない・・・)モニタの背面につけてリモコンだけで操作ができるところが便利。

ラズペリーパイ用に買った、3.5インチHDMIモニタにつけて車載モニタにもできそう。

最安値検索サイトリンク

iBuffalo HDMI Switch BSAK302

BOSE Companion 2

eRemote

OSOYO HDMI 3.5インチモニタ



IRKitというデバイスの可能性

Andruinoをベースした学習リモコンがいい感じですね。どうやらこのIRKit自体がウェブサーバになっていて、RESTやら、JSONでURLにコマンドを送ることで所定のIR信号を送信するようになっているようだ。HTTPサービス(apatche)で稼働しているようなので難なくカスタマイズもできそう。ハードウェアもオープンソースで回路が公開されている。一般ユーザもiPhoneアプリでWifi経由でコマンドが送れるようになっている。便利そうだ。

オフィシャルページ:http://maaash.jp/

いくつかの参考になるページ

http://y-nmc.blogspot.jp/2014/03/irkit.html 

音声合成との相性もいいはずだ。PCのUSB接続で使えるIRが売られていればそれでいいっていう感じもするが。HTTPで単体で動くというのがうれしい。

Windows 10 に搭載されているSAPI(音声合成)とCortanaについて

今回はWindows 10の音声合成の環境のアップデート。

Win7, 8, 8.1にはSAPIが搭載されており、sapi.hにOS標準の音声合成APIが含まれていました。Windows10も同様、標準のボイスの情報はSPCAT_VOICESに定義されているレジストリキー(HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices)にあり、バージョンは11.0となっています。

SAPI_REG1

さらに、Speech Platform Language Packでインストールされるボイスは”Speech Server”下に定義されます。このレジストリキーはSpEnumTokens関数でTokenを取得するときに第一引数として使用できます。(ただしSpeech Serverは Speech Platfrom Runtimeをインストールしないと、登録されていないボイスというエラーが返ってきます)

さらに、Windows10で話題のCortana(コルタナ)ですが、同じフォーマットでSpeech_OneCoreに定義されています。このボイスはSpEnumTokens関数で指定可能です。

SpEnumTokensでCortanaのボイスを指定する例)

hr = SpEnumTokens(L”HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices”, strReqAttribute, NULL, &pEnum);

CortanaにはパラメータがSAPIよりも用意されていますが、公開されているかは不明です。今のところ、SAPIから使用可能ということだけでしょうか。あと、日本語Cortanaのボイス名は”Ichiro”と”Ayumi”となっています。

SAPI_REG2

誰を使って、AI作ろうか。

今回作った。SAPIの関数(COMのHRESULTのエラー処理は省略)

HRESULT speak(LPWSTR strSpeakString)
{
	HRESULT hr = S_OK;

	//ISpVoice * pVoice = NULL;
	ISpVoice *pVoice = 0; 
	ISpObjectToken *pToken = 0;
	IEnumSpObjectTokens *pEnum = 0;

	if (FAILED(CoInitialize(NULL)))
	{
		::MessageBoxW(NULL, L"Error to intiliaze COM", L"DBG", MB_OK);
		return S_OK;
	}	

	hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
	if (SUCCEEDED(hr))
	{

		hr = SpEnumTokens(SPCAT_VOICES, L"Language = 411", NULL, &pEnum); //SAPI default voice (OS language pack) 411:Japanese
		//hr = SpEnumTokens(L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech Server\\v11.0\\Voices", L"Language = 411", NULL, &pEnum); //Speech Platform v11.0 (Required runtime)
		//hr = SpEnumTokens(L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices", L"Language = 411", NULL, &pEnum); //Cortana voice

		ULONG ulCount = 0;
		USHORT usVolume = 0;
		
		long lRate = 0;


		hr = pEnum->GetCount(&ulCount);
		pEnum->Item(0, &pToken);
			
		hr = pVoice->SetVoice(pToken);
		hr = pVoice->GetVolume(&usVolume);
		hr = pVoice->SetVolume(100); //0 - 100

		hr = pVoice->GetRate(&lRate);
		hr = pVoice->SetRate(0); // -10 to 10


		hr = pVoice->Speak(NULL, SPF_PURGEBEFORESPEAK, 0);
		hr = pVoice->Speak(strSpeakString, SPF_IS_XML | SPF_DEFAULT, NULL);
		hr = pVoice->WaitUntilDone(INFINITE);

		if(pToken)
		{
			hr = pToken->Release();
			pToken = 0;
		}

		if (pVoice)
		{
			hr = pVoice->Release();
			pVoice = 0;
		}

		if (pEnum)
		{
			hr = pEnum->Release();
			pEnum = 0;
		}
	}

	if (pToken)
	{
		hr = pToken->Release();
		pToken = 0;
	}

	CoUninitialize();
	return S_OK;
}

 

 

 

HTML5やphpを始めてみる。AIはクライアントにあるべき。

さて、最近インターネットにも飽きてきた今日この頃(youtuberがらみの記事とか)ですが、こんなことではいけないと思い、phpやmySQLを使ってHTML5がらみのサイトを作り始めました。まだ公開できるものではありませんがライブラリ的なテンプレートはできてきました。メンバーログインや、DBの管理(辞書やBBS、蓄積型のデータ管理等)がウェブからできるようになりそうです。

たぶん、現時点での最有力なAI(?)のSiriさんもこんなPHPの返りから返答パターンを繰り返しているのかと思いながらふと思ったことがあり。。。AIってクライアント一台一台が持つべき頭脳ではないのかと。サーバー上でデータを解析してサーバーのデータだけが太っていったのではいつまでもパソコンは、パーソナルにはなり得ない。

個人的に調べたいことだって、どうしてサーバーに一度送られ、サーバーから答えが返ってくるのか。クライアントが自分でサーチしてベストな結果を探してくるべきではないかと思ったわけです。個人情報をやたら入力しろというクラウドサービス。個人情報を提供しているにもかかわらず便利になってない、パソコン事情。そこがおかしいと言いたい。

で、なにをするべきかと考えたわけですが、やるべき操作のマクロをプラグイン化できるクライアントソフト。どんどん機能をプラグインとして追加(課金でもいい)していく。例えば、ショッピングサイトから最安値を見つけるプラグイン。ソフト本体は、TTSなり、UIなりで自由に。TTSもプラグインかな。

こんなソフトがあったら、みんなのパソコン便利になるぞ〜。Windows Store Appでやってみるか。