FC2ブログ


ep4:さる、海を渡る

   自然観察 [2019/05/17]
連休も終り頃、島に親戚がいるので、30年ぶりに訪ねた。

朝早めに棲家を出発したが、港についたのはお昼ちょうど。
行きは、高速船。 ちょっとお高いがそれを外すと、夕方まで船が出ないらしい。
20190504_1.jpg

出港して・・
本土の朝日連峰あたりでしょうか、残雪が残っていて綺麗でした。
20190504_2.jpg

海は比較的穏やかだったように見えたのですが、高速船は割と揺れるんですね。
乗り物に弱いさるは、頭がグラグラするので、揺れの少ない後ろ側席に座って、意識を失いました。
ものの1時間くらい経ったのかな?島に到着。
20190505_9.jpg
(写真は翌日の昼に撮ったもの。)


こんなところ・・・。

続きを読む

スポンサーサイト


VS2017-はじめの1/10歩(11):Windowsタブレット上でピンチイン/アウト:拡大縮小

   プログラミング [2019/05/15]
なんか忙しいなー・・・・

実はタブレット向けのプログラムを作るにあたって、
出来て当たり前だと思っていたピンチイン/アウトで画面の内容が大きく表示されたり小さくなったりするアレ・・・
(ピンチイン/アウト:二本指で画面をタッチして指の間隔を広げたり/狭めたり画面上で指を滑らす動作。)

Windows10とかでも、普通にはアプリが対応してないとそんな動きはしないらしい。
え、OS側で勝手に制御してくれるんじゃねーの?

「ストアアプリ」対応?・・・ダウンロードして使えるようになるアプリ専用の開発環境(?)だとその機能を持たせることが容易?


実際、Windows10のタブレットを1年前の初売りで安く手に入れてたのでやってみた。

ホンマや。ほとんどのPC用アプリではそんなタッチへのアクセスには反応してくれない。
チャント拡大縮小するのは、ブラウザやフォトビューアくらいのもの?
テキストエディタとかで、字を大きくするくらいの対応をしている場合もあった。

「なーんだ、Windows10大したことねーな」 と一瞬思った。

でも、手持ちのスマフォを、改めて触ってみたら、
こっちも、全部のアプリが対応して拡大縮小するわけでもないのね。
勘違いしてた。どんな、スマフォアプリも、ピンチイン/アウトできるもんだと。

まあ、タブレットは画面が小さいけど、割と画質は高い(画角は広い)。
だから、普通のPC向けに作ったアプリをタブレットで見ると、かなり小さい字で表示される。

老眼間近の方々には、結構辛い。

というわけで、Windows10のピンチイン/アウトの機能はどうやって使えるのか調べてみた。



続きを読む



ep3:ブルーベリー増殖計画からボカシ肥を仕込んでみる

   自然観察 [2019/05/04]
実家に荒らしてしまった畑があるのだが、
毎年草刈りだけはしている。
トータルすると、かなりの時間を費やしている。

せっかく土地があるんだから、何かを植えて手入れした方が生産的だよね。

ちょっと考えた。
そうだ、ブルーベリーを植えよう!

単なる思い付きです。
どんだけ大変なことかはわかってません。

さる家の庭に一本だけ、ブルーベリーの木があります。
品種は・・・不明です。
植木市で買ってきた苗木をポンと庭に植えただけですが、
20180728_y.jpg
毎年、ラーメンドンブリに山盛り3杯くらいのブルーベリーを収穫します。

あまり投資はしたくないので、
まずは、ブルーベリーの苗木を自分で作る(?)ところから始めてます。

「ブルーベリーは、挿し木で増やせます。」
ほんまけ?
と、2年前の秋口くらいに、単に切った枝をその辺の土に挿したものが、これ。
20180826_x.jpg
一本しか生き残りませんでした。
まあ、失敗ですね。

なので、昨年はYouTubeで、やり方を調べた。

続きを読む



ep2:'19山菜採りシーズン・スタート

   山菜・きのこ採り [2019/05/03]
連休初日に予定していた、
恒例の葉ワサビ採りですが、
雨模様のため、延期して、連休3日目。

んー。去年並みにちょっとだけ遅かったかなー。

でも、山の上の方に行ったらそうでもなくて、
ちょうどと言えば言えなくもない。
20190429_1.jpg
畑みたいに生えてますね。

同じ場所に生えている、赤こごみは盛りでした。

続きを読む



ep1:里山片付け

   自然観察 [2019/05/02]
連休2日目、晴れた。

山(山菜採り)に行きたいところだったが、実家行く日。

前週に、実家の裏山を越えた(荒らしてある)畑に、使い方を覚えたてのマメトラを持っていこっかなーと思って、
畑に通じる道を見に行くと・・・峠に雪&倒木。

何をするにも、春先は、片付けから始まります。
まあ、毎年のことなので、去年の倒木に比べれば可愛いもんだ。

一週間経ったので、雪も解けて、作業開始です。
20190428_1.jpg

そんなに太くないからと、なめて掛かったら結構大変でした。

続きを読む



近場な穴場

   その他 [2019/04/22]
少し前の話なのですが。

寒いし、ちょっと暇だし。
車で、1時間以内の温泉を探してみた。

さる2号が、なんか「感じのいい秘湯」があると言い出した。

カイノサワ温泉というところがあるとのこと。
「キャンザ?」・・・

さるが育った町にも、「貝沢」=「カイノサワ?」という地名があって、
みんなこぞって「キャンザ」と呼んでたので、思わずその呼び名が出てしまった。

聞いたことないなー。
さるがいつもマイタケ採りの行き帰りに通っている通ったことのある付近らしい。
そう言えば、なんか温泉っぽい看板があったような・・・

行って見ました。
こんなとこでした・・・。

続きを読む



掘ってまーす

   自然観察 [2019/04/21]
爺様が、ほとんど何もできなくなって、荒らしてしまった畑が、結構な広さである。
毎年、単に草を刈るだけなのだが、雑草は強い!刈っても、刈っても。

昨年は、居間から排除したゴザを畑に敷いて、気持ちょっとだけ楽できたが、「焼け石に水」ならぬ「荒らした畑にゴザ」です。

「掘るといいよ。」
あーそっかー。

ただ掘るだけと言うのも何なので、何か植えたいとは思いますが・・・・

ところで、どうやって?

実家の小屋にマメトラらしき機械が、2台くらい、ひっくり返ってました。
なぜ、逆さ?(よくは分かりませんが、小さい方は逆さに置かれてた。)

起こして、明るいところに出した。
ほー、ク●タ製ですね。
20190414_1.jpg
動くんだろうか?爺やにダメもとで大声で聞いてみたが、頓珍漢な反応。

恥かしながら、高校卒業までは、家にいたがそのあとは家の農作業なんぞ手伝ったこともない。
爺さんも、ほぼコメくらいしかやってなかったし。手伝えと言われたこともなかった。
子供のときは、こんな機械は家になかったので、鍬くらいしか使ったことがない。

しばらく、機械とにらめっこ。
「OIL」と書いたコックがある、手でねじってみたがびくともしない。
ペンチを持ってきてねじったら周った。
引き出すと蓋には中の方に突き出た突起があって、その濡れ具合でオイルの量を把握するようになっているらしい。
でも逆さにしてあったから、それはたぶんアテにならないだろう。

燃料は?混合?普通のガソリン?灯油?
ググる。・・・・めっけ。ガソリン!

プラグは?・・・・これで行けるんだろうか。判断付かず。

ともかく、まずは買い物です。6km離れたホームセンターへ。

農機コーナーで、エンジンオイル発見。
「2サイクル用」、「4サイクル用」・・・えっ違うの?
どっちなのよ。・・・ググる。・・・クボ●のこれは4サイクルと書いてある。

ガソリンはと。・・・ない。そっかホームセンターでは売ってないのね。
帰り道のスタンドへ。赤いガソリン入れは持ってきてあった。

OILは溢れるくらい注入。
ガソリンは、ちょっと入れた。(動かない時に戻すのが大変そうなんで。)
準備は、これで、たぶんOK。

紐がついてる引っ張る式のスターター。
30回くらい引っ張ってみた。
ハンドルについてるクラッチは切ってある。
チョークらしき「C」と書いてある摘まみ引いたり押したり。
プラグは引っこ抜いて、乾いた布でフキフキ。

掛からん! ふとみると、ハンドル付け根に「ON」「OFF」の文字。
「OFF」になってる・・・・・・

あっさり、掛かりました。ははは。

続きを読む



この冬・さるのダイジェスト

   自然観察 [2019/03/12]
3.11でしたね。8年も経ったなんて、速いな~。
まだまだ大変な状況な人達がたくさんいるんだな。
しっかりしなくちゃ。


さて、さるの棲む地域も、平地はだいぶ雪がなくなりました。
昨年度に比べれば、過酷さは若干緩かったかな。

ここ最近、(たぶんだれも興味のない)プログラミングのことしか書いてないので、
どうでもいいゴミ写真で少しインターバル入れときます。

■2018/12上旬
雪の降り始めの時期は、こんなもん。
車ごとの初滑りもたしかこの日。やばかった。
20181209_z.jpg

■2018/12中旬
親戚(甥っ子)が釣ってきたハタハタいただきました。
「俺もイキテー」もう何年も行ってない。
20181218_y.jpg
今シーズンは不漁で、型も小さかったとのこと。
確かにちいせ。
新しい内にと思って、さっそく焼いて、酒のつまみにしてやったぜ。
20181218_z.jpg

さる家に棲んでるハルです。
対面キッチンのここが定位置1です。
周囲に睨みを効かせ、あわよくばおやつを頂ける場所。
20181216_z.jpg

年を越して・・・

続きを読む



VS2017-はじめの1/10歩(10):ボタンの色を変える

   プログラミング [2019/03/11]

VS2017を使うんだけど慣れてないからVS6でまずは作ってます。
→ナレーション再生と音声認識を使う
  →そのため音声データの作り方(多言語対応)
  →ナレーション(.WAV)再生のサンプルコード
  →音声認識のサンプルコード
→VS6で作ったC/C++コードをVS2017に持って行って.cppレベルで共通にする方法
→ダイアログベースのプログラム
  →背景に画像(.BMP)を使う
  →ラベルを透かす
  →ボタンの色を変える←今回

と来てます。
これまでと違って、さらに必要性は低いかな。

個別に色んなボタンを配置するというよりは、
「このプログラムではこの色が【ボタン】です。」的なデザインを前提にしてます。

始めます。
ラベルのときのWM_CTLCOLORSTATICと同じようなWM_CTLCOLORBTNというWMメッセージが存在します。
でも、このときに色チェンジをできるのか?と思いきや・・できないみいです。
なぜだ?

ともかく、ボタンコントロールの場合は、オーナードローって属性にして、
「自分で描きます」って宣言しないといけない。

まずは、リソースエディタを使って、ダアイアログに乗っけたボタンのスタイルに「オーナー描画」とあるのでそれを設定してください。
指定すると、そのボタンを「描画する必要があるとき」に、ダイアログのウィンドウプロジジャにWM_DRAWITEMメッセージがデバイスコンテキストハンドルとともにやって来ます。

以下のような処理をウィンドウプロシジャ中に加えます。
//---------------------------------------------
//****** ボタンコントロールの背景色設定
//※以下ではできない。
//case WM_CTLCOLORBTN:
// return ChangeColor((HDC)wParam, RGB(255,255,255), RGB(255,64,64), &g_hBrsBtn);

//******* オーナードローボタン描画
case WM_DRAWITEM:
{
LPDRAWITEMSTRUCT podraw = (LPDRAWITEMSTRUCT) lParam;
DrawButtonCtrl(hDlg, podraw);
return TRUE;
} //end WM_DRAWITEM
//---------------------------------------------


で実際の描画の中身は、・・・






続きを読む



VS2017-はじめの1/10歩(9):ラベルを透かす

   プログラミング [2019/03/10]
ダイアログベースのプログラムを作る場合に「背景に画像を貼る」の続きの話になります。

画像を描いたその上に各種コントロールが表示されます。
画像を貼ってみて分かるのですが、
エディットやボタン等の入力とか機能を持ったコントロールはいいのですが、
「見出し」として付けてるラベル(スタティックコントロール)も矩形で背景が塗りつぶされていると、なんか格好悪い。

ドーンと目立たせたい場合とは別に、隣のコントロールの説明的にラベルを貼ってるだけなので、文字さえ見えれば、後ろは透けていいことがある。

で、透けさせる方法です。
他でもいくらでも解説してくれてるから、さるがいい加減な説明をする必要はないのですが、
前から言ってるように、さる自身のための備忘録ですから。

始めます。

まずは、
1)VSのリソースエディタで、ラベルを貼る際に透けさせたいラベルのプロパティ(拡張スタイル)に「透明」を選択します。
これだけでもスケスケになるんだったかな?・・・ならなかった気がします。
2)特に固定文字列を表示するだけで、他の機能を持たせるつもりがない場合、透けさせるラベルのIDはデフォルトのIDC_STATICのまま共通としておきます。

3)透けさせるのには処理コードが必要です。
ダイアログのウィンドウプロシジャ内に以下のようなWM_CTLCOLORSTATICメッセージを処理するコードを追加します。
//---------------------------------------------
//****** スタティックコントロールの背景色設定
case WM_CTLCOLORSTATIC:
if (GetDlgCtrlID((HWND) lParam) == IDC_STATIC) {
return BeTransparent((HDC)wParam);
}
else if (GetDlgCtrlID((HWND) lParam) == IDC_STTITLE) {
return ChangeColor((HDC)wParam, RGB(0,0,0), RGB(128,255,255), &g_hBrsTitle);
}
break;
//---------------------------------------------

勢いが余って透けさせないラベルの処理もはいっちゃったので、後でそっちの説明もします。
ともかくスケスケにしたいラベルのIDはIDC_STATICなのでそのIDでWM_CTLCOLORSTATICが来たら、
BeTransparentという関数を呼びます。
こんな処理です。
//---------------------------------------------
//name :BeTransparent
//function :スタテックコントロールを透過にする。
// リソースエディタでIDC_STATICのコントロールの「透過」設定が必要。
//parameter :hDc -対象コントロールのデバイスコンテキストハンドル
//global :なし
//return :ブラシハンドル(NULL_BRUSH)

LRESULT BeTransparent(
HDC hDc)
{
HBRUSH hbr;

SetBkMode(hDc, TRANSPARENT);
hbr = (HBRUSH) GetStockObject(NULL_BRUSH);
return (LRESULT) hbr;
}
//---------------------------------------------

文字背景色を透明にして、背景塗りつぶし用のブラシ(透明)をリターンします。
ブラシのハンドルは、WM_CTLCOLORSTATICの処理結果のリターン値になります。

これだけです。

では、背景色/文字色を変更する方も・・・

続きを読む



VS2017-はじめの1/10歩(8):ダイアログの背景に画像を使う

   プログラミング [2019/03/09]
タイトルには含まれませんが、目指しているのは
「タブレット的な、向きな、らしいアプリを作ってみる」です。
では、らしいアプリ」ってなんだよ・・・んー・・・分かんないね。

今回は、比較的にありがちな、「ダイアログの背景に画像を貼る」です。
お前に言われなくてもな話。

早速ですが、
外部変数を3つほど。
//---------------------------------------------
HBITMAP g_hBgBmp = NULL; //背景画像のBitmapハンドル
HBITMAP g_hPrvBmp = NULL; //元の背景画像のBitmapハンドル
HDC g_hDcBase = NULL; //画像描画用コピー元hDC
//---------------------------------------------


ダイアログのウィンドウプロジシャのWM_INITDIALOGとかで
//---------------------------------------------
//背景ビットマップ描画準備(全ダイアログ共通)
g_hBgBmp = (HBITMAP) LoadImage(g_hInst, "背景.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
if (g_hBgBmp) {
g_hDcBase = CreateCompatibleDC(hdc);
g_hPrvBmp = (HBITMAP) SelectObject(g_hDcBase, g_hBgBmp);
}
//---------------------------------------------

カレントディレクトリ上に「背景.bmp」という名前のWindowsビットマップ形式のファイルがあるものとしてます。

先に後始末のためにWM_DESTROYとかで
//---------------------------------------------
if (g_hPrvBmp != NULL) SelectObject(g_hDcBase, g_hPrvBmp);
if (g_hBgBmp != NULL) DeleteObject(g_hBgBmp);
//---------------------------------------------

まあ、プログラムを終わらせるだけならいらないかもしれないけど、「躾」として入れます。

で、ダイアログではあまりしないWM_PAINTの処理を入れます。
//---------------------------------------------
//******* 描画処理
case WM_PAINT:
DrawBackGround(hDlg, NULL);
break;
//---------------------------------------------

関数化してあるのは、ダイアログを複数使うようなプログラムで、共通の背景画像を使うことを想定してます。

関数の中身は、・・・


続きを読む



VS2017-はじめの1/10歩(7):そろそろVS6→VS2017

   プログラミング [2019/03/03]
使い慣れてないVS2017は何かとストレスになるので、
VS6である程度つくってVS2017に持ってく話なのですが、「持ってく」ところに話が辿りついてませんね。


例えば、VS6で”Hello World!”ってメインウィンドウに出すウィンドウプログラムを作ったとします。
(・・・手順は説明しませんよ。余りにも基本的なんで。)

VS6作成のプロジェクトをフォルダ毎コピーして、「元の名前vs2017」と名前を付けたとします。
フォルダ内の.dswファイルをVS2017で「開き」ます。
 →何か変換するから「元には戻せないよ」的なメッセージが表示されます。OKを応答します。
VS2017だと(さる的には違和感のある)右側にクラス/リソース/ソースファイルリスト的なものが表示されます。
 いきなりビルドします。メニューの[ビルド]-[(Xxxxプロジェクト)のビルド]ですね。注)
HelloWorldならたぶん何事もなくビルドが通るハズ。
→動かせます。

これだけです。ここしばらく書いていたメインテーマ「VS2017-はじめの1/10歩」は終了ー
ってなっちゃいますね。

注)VS2017のビルド対象・・・は、x86です。
(64bit環境しかインストールしてないとできないと思う。
 ・・・とはいうものの32/64bit環境のインストールで選べるんだっけ?)


でもね、それでもVS2017で、あれこれ付けたしでプログラムに機能追加して行こうと思うと、
使い方わかんないから大変なのよ。
アイコン1個追加しようと思うだけで、調べまくらないとできない!
(一回、調べて納得したけど忘れた。何か追加インストールしないといけなかったような・・・
先にpython環境として使い始めて、必要コンポーネント?(numpy、cmake、openCV、dlib、・・・・)のインストールとかで触りまくったのであまりよく覚えてない。

ならば、ということで

①VS6で編集/デバッグして、②VS2017でリビルドして、
③うまくいかない部分を直す

をやってます。
VS2017使い方の解説を期待して読み始めた方には申し訳ないですが、そっちは他のサイトをご覧ください。

さあ、またまた前置きが長いですが、
今回は、標準関数とかの話にします。


続きを読む



VS2017-はじめの1/10歩(6):音声辞書の調整

   プログラミング [2019/02/27]
前回のコードでは、認識(聞き取り)した後の処理について説明してませんでした。
少し補足します。

WM_RECOEVENTメッセージは、「話した内容をテキストに落としましたよ」というときに発信されて、
その内容はSPEI_RECOGNITIONというイベントIDになります。
その受け取りの処理を行っているのが、RecogEvent()という関数内になります。
関数内では、グローバル変数にマルチバイトストリングとして取り出してます。
さらにその後、ウィンドウプロシジャ内からChecKeyWord()で、期待しているキーワードが含まれているかをチェックすることを想定しています。
まあ、そこら辺りは「ご自由に」ってことで、省略してます。

例えば、
//----------------------------------------------------------

pos = (PTCHAR) _mbsstr((const unsigned char *) g_szRecogText, (const unsigned char *) pKeyWord);
if (pos != NULL) {
//###debug->
//wsprintf(g_MsgBuf, "キーワード発見!!=%s", pTxt);
//MessageBox(NULL, g_MsgBuf, "音声認識", MB_ICONERROR|MB_OK);
//###debug<-
return TRUE;
}

//----------------------------------------------------------

とかでいいかなと思います。


では、Windowsに含まれる音声認識機能で、少しでもうまい具合に言ったことを文字にしてくれるようにする設定です。

●聞き取りたいキーワードを音声辞書に登録
 例えば、こんにちは/ハロー/ニイハオ/ナニョハセヨを日本語音声認識で認識させたい
 場合、以下の手順で音声辞書に登録する。
 
◆Windows7の場合
[コントロールパネル]を開いて、右上検索欄に「音声辞書」と入力して検索し、さらに表示される「Windowsヘルプサポートで"音声辞書"を検索します」をクリック

「Windowsヘルプとサポート」ダイアログで「1.音声辞書で単語を追加または編集する」をクリック

説明文が表示されるので「音声辞書に単語を追加するには」をクリックし、「1.クリックして[Windows音声認識]を開きます。」をさらにクリック

「音声認識」のウィンドウが画面上部中央辺りに出るので、「オフ」と表示されている場合は、マイクのアイコンボタンをクリック

“音声辞書を開く”とマイクに向かって発話する。

「音声辞書」ダイアログが開くので、「新しい単語を追加する」をクリック。「音声認識」のマイクアイコンをクリックし、一旦認識をオフする。

「単語または表現」に登録したいキーワード(例えば“ハロー”)を入力し、[次へ]をクリック

「完了時に発音を録音する」をチェックして、[完了]ボタンをクリック

「音声認識」のマイクアイコンをクリックし、[音声辞書]ダイアログ上の[録音]ボタンをクリックした後、キーワードを発話する。しばらくすると録音が完了するので、[再生]ボタンで再生してみて、大丈夫なら[完了]ボタンをクリックする。

上記⑥から⑨を繰り返すことで、複数のキーワードを登録できる。

◆Windows10の場合
[コントロールパネル]を開いて、右上検索欄に「音声認識」と入力して検索。検索の結果、「音声認識」(複数あるので、縞の入ったマイクアイコン側をクリックし、「音声認識」ダイアログ内の「音声認識の開始」をクリック、あるいは、検索の結果に「音声認識の開始」がある場合は、それをクリック。

「音声認識」のウィンドウが画面上部中央辺りに出るので、「オフ」と表示されている場合は、マイクのアイコンボタンをクリック

“音声辞書を開く”とマイクに向かって発話する。

「音声辞書」ダイアログが開くので、「新しい単語を追加する」をクリック。「音声認識」のマイクアイコンをクリックし、一旦認識をオフする。

Windows7の⑦~⑧に同じ。

実際、動かしてみれば分かることですが、

続きを読む



VS2017-はじめの1/10歩(5):音声認識をプログラム制御に使う

   プログラミング [2019/02/25]
しゃべった内容が即文章データになる?

Windows10とかだと、何かの拍子に「何かご質問は?」的な催促をしてくることありますよね。
調子にのって、「Xxxxってどうやるの?」とか聞いてやると、
「何ですか?」とか二三度聞き返した挙句に頓珍漢なことを答えてくれちゃったりする。

#スマフォのサービスだとそんなことないけど。

オンラインのサービスの方が、そりゃ上等な認識をしてくれるのは当然かとは思うけど、
こんなに酷いんじゃねー。
初回の「御使用感」がさんざんなので、その後は間違って押しちゃって出てきても、
「頼んでねーよ」で直ぐに消えてもらいます。

そんな、ネットアクセスが不要な音声認識を何かに使えないか
なーと考えて、短いワードを数種類くらいで、それを検知したら、プログラムの動作制御に使う。
キーボード/マウス・タッチの代わりくらいに使えないかってことです。

やってみることにしました。
ついでに、外人がしゃべったらそれなりに。

●音声認識のセットアップ
 通常、Windowsに標準で組み込まれている。
 デフォルトのロケールに合わせた言語(認識)が入っている。

◆確認の仕方
 [コントロールパネル]-[音声認識]-左側メニュー「高度な音声オプション」をクリック
 「音声認識のプロパティ」ダイアログの「言語」欄に現在の認識エンジンが表示される。
 プルダウンを開くと選択できる認識エンジンが表示される。

◆追加する場合
 Windowsのエディションにより、簡単に追加できる場合と、結構な手順があるエディションがある。
 後者の場合は、問題があっても非標準扱いなので、ケアされない。
 ちなみに、HomeやProfessionalは後者。インストール方法などは、以下を参照願う。
 https://denspe.blog.fc2.com/blog-entry-168.html

※他言語の音声認識を同時に使用することは、ちょっと難しそう。
 [認識言語の切り替え→認識→コマンド解釈→プログラム制御]となる。
 最初の「どの言語に切替えるのか」を、結局何か発話/操作させて行うことにならざるをえない。
 よって、ここは現状の言語(認識)設定で、キーワードを認識させるのが安易な方法だろう。
 [カレントの認識→キーワード解釈→プログラム制御]

続きを読む



VS2017-はじめの1/10歩(4):音声データを再生する

   プログラミング [2019/02/24]
やっとこさ「プログラミング」らしい内容になるのかな。

まずは、機械に喋らせた発話で.WAVファイルを作ります。
前回(3)で説明した「◆PowerPoint読み上げ&録音」⑦の手順(audacity)で、
「Export」形式を「WAV(Microsoft) 16bit PCM 符号あり」を指定してファイルに書き込みます。
audacityはでの、音自体の編集は、説明してくれてるところが沢山あるので、必要ならそちらを参考にされてください。


.WAVを再生するなんて、しかもVS6とか使うんじゃもはや古典ですな。
でも、構わず書きます。
さる的にも随分昔にコーディングしたので、
どこのサイトを参考(半分コピペ?)して作ったものなのかは、既に記憶にありません。
ちょっと、参考させていただいたところには申し訳ないです。

使用するのは、WaveOutXxxx APIです。
使うためには以下のヘッダが必要だそうです。

//----------------------------------------------------------
//****<<音声(.wav)再生API(waveOutXxxx)に必要
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
//----------------------------------------------------------


で、参考にしたサンプルが、イッキに.WAVデータをメモリにロードして使っていたので、そこはそのままにしています。
1)ロードの処理と、2)解放、3)ロードされたデータを再生させて、4)再生が終了したら終了処理をする
をそれぞれ関数化。 サンプルもそうなってたかなー。

各関数のパラメタの数を減らすためにテーブルを定義しました。
//----------------------------------------------------------
//****<<Waveファイル再生制御用のテーブル定義
typedef struct _waveinfo {
PBYTE WaveBuff; //WAVEファイルデータバッファ
HWAVEOUT hWaveOut; //WAVEハンドル
WAVEFORMATEX Wfe; //WAVEフォーマットデータ
WAVEHDR Whdr; //WAVEヘッダ
} WAVEINFO, *PWAVEINFO;
//----------------------------------------------------------


では、実際の処理を載せます。








続きを読む



オレはやってない

   未分類 [2019/02/23]
ふだんWebブラウザはChromeを使っている。
IEも使ってはいるが、なんとなく イヤ。

Windows10にするとデフォルトではMicrosoft Edgeが勝手に動き出す。
しかも、慣れてないから使いにくい。
ホームがBingになってて。(そういうところが嫌い。)

勝手に動き出したので、自分のサイトをお気に入りに追加しておこうと思って、
「さるもすなる おまけ」を見ようとしたら、

危険なサイトだと真っ赤な画面が出た!

なんだ!?
「やばいサイトだと報告されてます。」みたいなメッセージ。

オレはフィッシングなんかやってねーぞ。
だれだそんなデマ流したのは。


とはいうものの、誰かにいたずらされて中身を書き換えられてるのか?
念のため、控えのソースと比較してみたが、そんな気配はなかった。

「おまけ」は、PHPの学習をかねて作ったCGIサイトで、
最初は・・・どこだっけか・・・忘れたけど・・・
どっかのフリースペース → ミライサーバー → ホスティンガー
とスペース貸しサービスを渡り歩いて、昨年秋に「000webhost」に新たに引っ越した。

どこも、数年はタダ貸ししてくれるんだけど、その内「止めます」か「タダは止めます」ってなる。
ホスティンガーは、有料化する(アップグレードという言い方)というので、
(大した使用料でもないので・・悩んだ末に、)紹介されていた乗り換え先の「000・・・」に引っ越した。


そんないきさつもがあったばかりなので、
「000・・・」はちょっとヤバイのか?と思ってしまった。



続きを読む



VS2017-はじめの1/10歩(3):続・多言語音声データを作る

   プログラミング [2019/02/21]
前のPCへのインストールと設定で、パワポが複数言語を読みげできるようになってるはず。
前回の続きです。

●多言語文章を作ってパワポに読み上げさせる
パワポのデータを作成する。説明は特定の言語(自国語)で。
作成した文章をinfoseek翻訳で他言語に翻訳する。
別名でセーブしたパワポを開き、自言語の文章を翻訳結果で置き換える。
※日本語→中国語(簡体字)、韓国語(ハングル)に置き換えた場合、数字/句読点やローマ字表記が残ってたりする。それをそのままコピペすると読み上げできない。
 <中国語(簡体字)>:
 日付などにローマ数字が入るとNG。句読点は、大丈夫。
 簡体字の数字コードを無理やり作る方法としては。
 例えば、「8」がほしい場合、infoseek翻訳で、「八代亜紀」を翻訳すると
 「八」(簡体字)が作れる。

 <韓国語(ハングル)>:
 本来、「、」→「,」、「。」→「.」らしいが、読み上げではNG。
 仮対処として、
 「,」→半角スペース(元々入っていた、「,」の後にスペースが入っているが取る)
 「.」→半角スペース(複数)

読み上げさせたい文章を選択(クリック&[Shift]+カーソル移動)する。
読み上げ可能かどうかは、範囲選択していけば「読み上げ」アイコンボタンの活性/非活性が変化するので分かる。

範囲選択して読み上げさせる。


●読み上げをパワポのナレーションにする
お分かりいただけたかと思うが、スライドショー時に自動で読み上げを行う仕掛けは、パワポにはないっぽい。
「なんだよ~」
ちょっと、世の中にないかググってみた。
※PPT2Voice Neo:パワポのノートを読み上げるアドイン(個人で使うにはお値段のハードルが。)
※「PowerTalk - automatic speech for PowerPoint presentations」:パワーポイント上のテキストを読み上げるフリーソフト。
 同時多言語読み上げが可能かは不明。(Windowsの音声合成設定を利用するらしいので、たぶんできない。)
※スクリーンリーダー:未調査。これが、よさそう。

上記のように新たなソフトを導入しないとスライドショーに同期してのナレーション再生はできなさそうなので、音声データを作成してページに貼り付ける方法を使う。

では、PCで再生中の音をサウンドレコーダーで録音・・・・
できねー。
前は、たしかできてたような・・・




続きを読む



VS2017-はじめの1/10歩(2):多言語音声データを作る

   プログラミング [2019/02/20]
音声とは言うものの、「声」の方です。
主題のVS2017からいきなり離れます。

最近は音声合成/音声認識とかやたら聞く。
お金を払って使えるものもあるらしいけど、GoogleとかSiriとか普通にしゃべるし、
こっちが話した文言なんかかなりの正確さで文字にしてくれる。
Windows10にしたら、音声の案内も機能としてある。(ほぼ使ったことないけどね。)

以前、ナレーションをプロに頼んで録音/データ化してもらったことがあったが、
さもない内容なのに費用は結構掛かった。
で結局、「気に入らない声」だというお客の意見でその「声」はボツになった。

今は、さらに外人向けに数ヶ国語の「声」が必要な時代。
日本語→翻訳→ナレーターに読み上げさせて録音→組込み となるわけだが、
却下されるかもしれない「声」にお金を掛けてらんない。
かといって、訛りまくりの自分の声の録音では、さすがにデモにもならない。
英語他も絶対だめだしね。

簡単に多言語のナレーションを作る術(スベ)はないか調べてみた。

パソコンに喋らせて、それを録音することを考えた。
他国の言語は、カタコト、もしくはちょとくらい変でも、ネイティブでもなければ気付くまい。
それに、「機械がしゃべるんだからこんなもんですよ。あくまでもデモですから。」という言い訳が利きそうだ。

つまり、なんちゃって多言語音声合成
これだけでも、数回になりそうです。

MS社PowerPointの機能に、書いた内容(文章)を「読み上げ」る機能があるらしい。
それを使っちゃえば、ナレーター雇って、録音スタジオ借りて・・・なんてやらなくていい。
PCの音声ならきっと元はプロの方のお声/発音がベースだろうし、PC上で再生することに何の縛りもないはず。
(「声」って、その声の主のなんか権利的なものがあって、
当初目的以外の用途で使っちゃならん!とかいうのがあると聞いたことがある。
なので面倒に巻き込まれないことが保障されるPCの音声合成は、お手軽です。)

さあ、やっと本題です。
おおまかな手順としては以下になります。

1)PowerPointにナレーションの元の文章を日本語で書き込みます。
2)その文章をコピペして、Web上の翻訳サービス(例えば、Infoseekマルチ翻訳)で
  よくある 英/中/韓に翻訳します。
3)その内容をコピペして、別のPowerPointファイルか、別ページにコピペします。
4)PowerPointに読み上げさせて、それを録音し.WAVデータを作成します。

そうすれば、日本語も合わせて、4ヶ国語の同じようなことを説明しているナレーションデータが出来上がる・・・はず。

1)と4)についての詳細を以降(続きを読む)で説明します。

続きを読む



VS2017-はじめの1/10歩(1):はじめのはじめ

   プログラミング [2019/02/17]
もう、いつ死んでもそんなに「早死に」とは言われない年齢なんですが、未だにプログラムを書いてます。
『もっと年相応にやるべきことあるだろ。』と思われているのは分かってますが、性格も能力もそっちには向かない。
結局、低レベルな職人気質(逃げですかね。)で、手を動かさないとやった気になれない。

MS様が開発環境を個人向けにタダにしてくれたので使ってみることにしました。

でも、結局は昔使ってたVS6-Win32SDKにしか「慣れ」がないので、
できればそれ以上のことは覚えたくない。
・・・というか、理解できないので、
「VS6である程度作って、VS2017に持っていく」をやってみることにしました。

何を作っているかは秘密ですが、
殆どの課題は自宅に帰ってからの調べ(サービスXXの内職)なのでいいよね。

初めにお断りしておきますが、
このあと続くであろうボヤキは、

・いわゆる、Win32SDKプログラムの話です。
・ウィンドウをCreateして、そのウィンドウに対するメッセージ(イベント)を
 switch-caseで分けて処理するようなプログラムです。
・C++的なクラスとかはほぼ使う気がありません。
・MFCも使いません。(仕上がりが大きくなるし、わけわかんないし。)
・COMとかATL(ActiveX/OLE)とか何なのか理解できてません。
・でも、コーディングが楽そうなら使っちゃいます。
・WPF?だったかな、その他新しいライブラリとかフレームワークとかも。
・他のサイトのさるまねです。
・「やったら動きました。」のレベルなので、「この場合は?」は皆目・・・。
・いわゆるディスクトップ・アプリです。


つまり、ヒトサマに自慢/説明してもいい話ではなく、
あくまでもさるの備忘録として残します。

前置き/言い訳が長くなりましたが、
以下のような、課題とその対応コードの説明になると思います。


・音声認識を使った制御とか。
・音を再生させる。(今更の話。)
・ちょっと見栄えも気にするので、背景に画像を使う。
・タブレットPCで使えるようにタッチパネルで・・・
 -ピンチイン/アウト
 -スワイプ(パン)
・サーバ側にあるデータを取り出して・・・
 -IE?WebBrowserの起動
 -暗号化(実は今ここを調査中。)

まだ、あったような・・・
いずれ、上記の課題をVS6(C・C++)で作って、VS2017に持っていくという流れになります。

今日は、前置きだけにして、本題は次回からとします。

では、この辺で。m(__)m









柿・・・干しました

   その他 [2019/01/28]
昨年の秋に・・・えーと11月の下旬頃に柿を採ってきて、棲家のカーポート下に干しました。
(前の記事)

その後、かなり天候はよくなくて、雨続きのため、なかなか乾きませんでした。
結局、1か月以上、干したままにしてた。

幸いカビは生えなかった。

お歳暮と一緒に、親戚に半分4~50個をおすそ分け。
20190127_2.jpg
このとき、自分でも初めて食べた。
なんと、種がない。種無し柿であることを初めて認識。
(気付かないほど、自ら自分ちの柿を食べることがなかった。)
あれ? 意外と美味しい。

送った先の親戚での評判も割とよかったらしい。
残りの半分は、さらにそのまま干して、年末に全て取り入れた。
20190127_1.jpg

で、一度には食べきれないので、ジプロックで冷凍庫に。

久々に出してみたら、こんな感じになってた。



続きを読む



カレンダー
05 | 2019/06 | 07
- - - - - - 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 - - - - - -
プロフィール

さるもすなる

Author:さるもすなる
さるです。別HPサイト「さるもすなる」から侵食してきました。 山菜/きのこ、それとタイトルにしたPPバンド籠のことをメインに徒然に・・・・暇を持て余したさるの手仕事:男手芸のブログってことで。

最新記事
最新コメント
月別アーカイブ
カテゴリ
天気予報

-天気予報コム- -FC2-








本家のHPのトップ
山菜や茸の話です
PPバンドの籠作品と作り方です
投稿をお待ちしております



ブログランキング・にほんブログ村へ にほんブログ村 ハンドメイドブログへ



マニュアルのお申し込み



検索フォーム
リンク
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QR