Category Archives: webサーバー

今後の音声合成・認識の方向性

マイクロソフトのOS標準Speech APIは2024年の廃止、Cognition APIはAzureで有料APIという状況なので、オープン系、パッケージアプリで対応することにする。Google APIもMSと同じく有料。

発音・認識クオリティについては高いかもしれないが、クラウド経由でスタンドアローンでは使えないので今後は使わない方向で。(音声認識したり、テキストを読むたびにクラウドにデータを飛ばすというモデルはちょっと違うと思う。スタンドアローンで両方できないとデータ漏洩してるでしょ)

現在、.NETでCeVio AIを使っているけれどまだ、MS Speechほど使い回しはよろしくない。APIをCallするときは、アプリが起動していないといけない。さらにタイミングでクラッシュすると、アプリを起動しにいくので起動時間中はさらにエラーが続く。実装モデルをもう少し調整する必要あり。

A.I.Voiceも、A.I.Voice Editor APIが公開されている。.NET COM共に使えるようだ。Win32 C++で何とかやってみたい。

音声認識は、Voskというオープン系で。Waveデータのアドレスハンドリングが結構大変なので、Pythonスクリプトベースで、JSON受け取りをPIPE経由で。

それから、Google AdmobはApp Storeの規定で、プライバシー設定でユーザーが初回起動時にユーザー情報共有の同意をしないと表示させてはいけないということになっています。中にはプライバシーをオフにしても広告が出続けているアプリも結構あるみたい。というのもこのメッセージをつけた途端広告収入は0になりました。

App Tracking Transparency(ATT) のダイアログ表示されるようにしたけれど、ユーザーはオフにするみたいですね。実際自分も全アプリオフにしてたし。最近は通知も全部オフ。

Google Admobをライブラリとしてリンクすると、Google FirebaseがDependencyとしてリンクされ、さらにコンパイル中にもネットから情報を確認しているらしく、コンパイルが通らなかったりネットからのレスポンス待ちとかで、重たい処理や情報を吸い取られている。NuGetの他のパッケージのバージョンにも影響あり。デベロッパー、ユーザー共に情報が抜き取られている。なので、Admobも入れない方向で。機能を盛り込んで育てていくうちにどこかでアプリ内課金にしていきます。広告料も入ってきたことはない。

広告も、Analytics(今はFireBase)もなんでGoogleに送らないといけないのか意味不明。自前のPHPスクリプトにユーザーアクションログだって送れるんだし。

あとは、Xamarinも2024年5月廃止なので今後はMAUIで。GitHubは未公開で。

IEサポート終了なので。

MSのInternet Explorerのサポートは、2022/06/15で終了。スクレイピングできないサイトのオートパイロットはSHDocVw.dll内のAPIで使用していますが、どうやらDLLはなくならないっぽい。けれど確認は各自してくださいとの事らしい。

Internet explorer end of life: impacts on programs using SHDocVw.DLL – Microsoft Q&A

なので、C#で使えそうなAPIを模索中。WebAPIを公開していてもIPでブロックされて使えないサイト(某Yフ―ショッピング)もあるので結局、オートパイロットでUI上からダウンロードリンクのクリックを再現している。ダウンロードダイアログのダウンロードボタンは、別プログラムでクリックしている。

        
    SHDocVw.InternetExplorer objIE = new SHDocVw.InternetExplorer();
            objIE.Navigate("https://xxxx.com/URLPath");
            objIE.Visible = true;
            objIE.Silent = true;
            objIE.FileDownload += 
         new DWebBrowserEvents2_FileDownloadEventHandler(IE2_FileDownload);

    foreach (HTMLButtonElement b in objIE.Document.getElementsByTagName("button"))
        {

            if (b.name == "btnSubmit")
            {
                //Console.WriteLine(b.type);
                //Console.WriteLine(b.name);
                b.click();
                break;
            }

        }

代用できるAPIがみつかればIEはすぐに捨てていくことにする。できればブラウザのUIを表示しないでスクレイピングのみでやりたいけれど、WebAPIを公開しているのにもかかわらず登録IPのみ処理可能っていうのは、やめてほしい。登録してもPHPを走らせていているサーバはレンタルサーバーのせいか結局はじかれる。よくわからないがサポートと話すくらいならできる方法でやるしかない。
愚痴ってもしょうがない。

アフィリエイトでバナーや画像は無意味なのか。

検索エンジンに対して、ちょっとしたテストをしてみた。

ある程度検索エンジンに引っかかるようになったサイトで、アフィリエイトのバナー画像を表示していたのですが、売り上げやクリック数が上がらないので画像をすべてテキストに変えてみた。検索エンジン側では表示されたテキストデータを蓄積していくという想定で、アフィリエイトのテキストリンクが蓄積されて直接リンクがクリックされるのではないかと調査中です。

アフィリエイトで、”儲かりますよ”という記事でアクセス数を上げている人もいるようですが、実はサイト上に表示される多様なテキストの量で検索エンジンに登録されるような気がしている。以前にホテル検索をAJAXとHTML5で動的に結果を表示するサイト作ったことがありましたが、このサイトのヒット数が上がらないのはたぶん、検索エンジンが巡回した時に実データが表示されないからだろう。すべて動的に表示されるサイトは技術的にヒットしない(検索エンジンは表示効果じゃなく、結果のみを見る)のだろうと想定される。

例えば、キーワードの検索結果に直接リンクが表示されるとしたら、ユーザは直接そのリンクをたたくということ。よく日本語の書き方が肝心とか、サイトの書き方とか解説しているサイトも多いですが、単によく検索されるキーワードがテキストで、静的にHTMLで出力されることが条件なのだろう。どこかでテキストリンクが羅列されているサイトを見かけたことがある。掲示板系のサイトもヒットすると想定される。

この記事はただの想定のものだが、しばらく結果を見ようと思う。(究極な話、アフィリエイトのリンクを羅列したサイトでいいのでは?アフィリエイトのサイト審査が通ればの話)

ワードプレスの永久ループ的なサイト内の相互リンクでもいいわけか。それがSEOの仕組みとか?

という事でこの記事が役にたったらしたの広告リンクをクリックしてサポートお願いします。ドメインもレンタルサーバも安くできますよ!。

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で単体で動くというのがうれしい。

いまさらですが、Mac OS X YosemiteにMySQLを入れてみる

先日、15インチのMBPを買ったので今まで使っていた13インチのMBP (Mid 2010)をローカルウェブサーバーとして使うため、MySQLを入れてapacheと連携させてみました。(この記事はMBP 2010で書いています)ちなみにapache+MySQL+PHPでAMPとなるなしい。(いままではWindowsでローカル環境からXAMPというパッケージでデバッグをしていた)

とりあえずサーチしてみたところ、Yosemiteをウェブサーバにするケースは結構あるようで簡単に見つけることができました。

とりあえずYosemiteではapacheもphpもすでにインストール済み。

バージョン確認

$ httpd -v

Server version: Apache/2.4.10 (Unix)
Server built:   Jan  8 2015 20:48:33

手動起動

$ sudo /usr/sbin/apachectl start
自動起動設定

$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

PHPの確認方法ははこんな感じ。

バージョン確認

$ php -v

PHP 5.5.20 (cli) (built: Feb 25 2015 23:30:53) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

php.ini 設置

sudo cp -p /etc/php.ini.default /etc/php.ini
Apache連携設定

$ sudo vi /etc/apache2/httpd.conf
#LoadModule php5_module libexec/apache2/libphp5.so
↓
LoadModule php5_module libexec/apache2/libphp5.so
Apache再起動

$ sudo /usr/sbin/apachectl restart
PHP動作確認

sudo vi /Library/WebServer/Documents/phpinfo.php


そしてMySQLをHomeBrewからインストールをするためにHomeBrewをインストール

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

表示上は”が’で書かれていたが本家のパスからコマンドを頂いて、成功
そしてMySQLのインストール。

brew install mysql
MySQL起動

mysql.server start
自動起動設定

cp /usr/local/Cellar/mysql/5.6.21/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
MySQL の root パスワード変更

mysqladmin -u root password 'password'
※パスワードは任意のものです^^
MySQLへのログイン

$ mysql -u root -p
※パスワードを入力
PHPからのMySQLアクセス確認

$ sudo vi /Library/WebServer/Documents/check_mysql.php

Yosemiteではない場合、コマンドや環境設定が違うこともありますのでご了承ください。