Category Archives: CeVIO AI

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

マイクロソフトの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は未公開で。

Speech API (SAPI)からCeVIO AI Voiceで読み上げ C++ 実装編 (COM SDKからのSpeakで失敗する)

タイトルの通りWin32 COM C++では、SAPIの音声リストからCeVIOのボイスの選択はS_OKで成功するが、Speakで “REGDB_E_CLASSNOTREG Class not registerd” エラーが出る。

Win32 COMではCeVIO AIのボイスを選択し、SAPIのSpeakでREGDB_E_CLASSNOTREG Class not registerd エラーが出る

OSにバンドルされているSAPIのボイスのSelect, Speakではエラーにはならない(正しい動作)ので、エラー処理でCeVIOを除外するしかない。(SpeakがFailした場合、最後にS_OKだったボイスをセット)今のところ、”CeVIO”がボイス名に含まれているか、Initializeの時の第一声テスト時にFailするボイスを自動選択しないようにするコードを追加。

このコードは、デスクトップ上に時刻を表示するアプリで、Win32 C++ COMでUIがD2Dベース。かれこれ5年くらいコードは触っていなかった。最近、CeVIOをインストールしたときから、Speechできなくなっていた。D2DはWindows Animationで画像表示やエフェクト、移動等ができビジュアル面では高機能。コードはWin32 C++ なのでメモリアドレス、メモリのコピペ等の操作のコード直書きなのでパフォーマンスがいいけれど、CeVIOがこれでは対応できない。

多分、CeVIOのC++コードをDLLインポートすると、2つのアプリではAPIは呼べないはずだし。

とりあえず今回は、CeVIO AIのボイスを除外する方向で修正済み。

TimeSignalアプリの時間表示。TimeSignal.exeにSpeechする言葉をオプションで起動することで、バックグラウンドで走る。画像は右クリックでExitメニューが表示されているところ

CeVIO AI コントローラー .NET アプリページを公開

CeVIO AIのコードが使えそうになってきたのでページを公開しました。コードを公開する予定はありませんが、コードの使い方はこのブログで書いていこうと思います。

パッケージはアプリの完成度をみながら公開。あえてインストーラーは作りません。

UIはまだまだ改良の余地があるのでデザイン的なものも含めて今後アップデートしていきます。

ウェブスクレイピングが出来ると用途が増えると思うけど。どんな使い方ができるか今後追ってアップする。リアルタイムでTwitch上でアップできると編集とかしなくて時短できていいかな。

CeVIO AI コントローラー(開発中)

ご意見、用途のご相談お待ちしております。お仕事としても依頼受け付けております。よろしくお願いします。

追伸:最近はゲーム配信が出来ていない。夜中に起きてやるしかない。しかし、Twitchのチャットの自動音声返信まではまだ先が長い。