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

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

NugetパッケージのSystem.Speech がv7.0でインスタンス作成時にFailを出すようになった件。(.NET6.0にしたら治った)

Nuget package System.Speech v7.0 initialization fail on .NET5.0

無意識にNugetのパッケージをアップデートし、コンパイルが通らなくなった。常日頃から使っているSpeechを使った仕事用のアプリで使っている、Speechがv7.0からinstanceのnewで落ちる。

.NET 6.0では、System.Speech v7.0は使えている。

.NET 6.0というのがあるのでアップデートした。それで Speech v7.0は無事コンパイルできた。一瞬マイクロソフトのSpeechSynthesisの2024年を意識してのサポート切れかと思ったがまだ使えるらしい。

.NET 5.0と6.0の違いは不明。。。他のコンポーネントの様子を見ることにする。

しかし、UWPではだめのようだ。。。