この記事の概要を簡単まとめ!
- ゆかコネ、できることが増えていく
- 音声認識経路は実は多彩に用意されている
- それぞれで特徴が違うはずなので比較してみることにした
- 検証用の録音音声を12パターン容易し、入力を均一化する
- 1音声ずつ現在使用可能な7種類を同時に比較する
- ブラウザ: 文章性はEdge, 正確性はChrome
- オフライン認識: 応答性は高いがどうしても正確性に欠ける
- UDトーク: エミュレータよりスマートフォンの方が良い可能性
- YNC-Whisper: ノイズ除去が重要である
- 結論:それぞれの特徴から、自分に合ったものを選んで使う
世には人知れず登場して人知れず消滅していくものが多すぎる。なので気付いたら存在して気付いたら消えている、をよく経験する。その存在が自分にとって必要なものだったのが、無くなってかなり時間が経ったときに気付くというのが多いために、もっと早くに気付いていればと思うことも少なくない。
ゆかコネは幸い、cleaちゃんをはじめとした多くのユーザーに愛されて、検証班も多いため提案や不具合レポートも盛んである。機能も多数追加されている中、最も基本となる音声認識も経路が増えている。そこで今回はゆかコネが現在扱える音声認識経路をそれぞれ使用し、その結果からどういう使い分けが最適かを考えていく。
ひとっ飛びできる目次
目的に応じて使い分ける
ゆかコネのできること
できることが増えたゆかコネ
ゆかコネを調査し、使い続けて2年を越した。当初よりできることが増えたゆかコネは、その主力が字幕と翻訳であることは変わらず、できることを大幅に増やしていった。Nao氏は本業の静岡福祉大学非常勤講師の隙間で常に開発をしている状態で、いつ休んでいるのだろうかと心配になるほどだが、その結果として様々な機能が追加された。
現在主流なのは最新でGPT-3.5系のAI連携機能、わんコメ連携によるテンプレートの適用、VOICEVOX, COEIROINKなどの読み上げとの連携、各配信プラットフォームとの連携、VRプラットフォーム連携、OBS(WebSocket5使用)連携, VTube Studio連携等である。このあたりの利用者は相当多く、Discord内ではAI関係と読み上げ関係の会話が多くみられるため、このあたりは常に注目されている分野と見て間違いないはずだ。
また、ゆかコネ以外のNao氏の制作物として、OBSとわんコメとの連携をメインとし(もちろんゆかコネも連携できる)、バックアップやOBSの操作を外部から行える『まるっとれいな』、Twitchのチャットボットソフトウェアの1つであるFirebotの日本語版制作(翻訳)を行っている。これらの情報もDiscordで提供中であり、この分の検証とサポート対応でゆかコネ以外でも常に忙しいという様子である。
音声認識経路の多彩な実装
ゆかコネの字幕と翻訳の基本の仕組みをおさらいする。公式サイトでは次のページで解説している。文章で簡単に説明すれば、まず音声認識を利用してゆかコネにその結果を送信し、ゆかコネでの翻訳の設定に沿って任意の言語に翻訳を行い、その結果をブラウザを利用してOBSなどで表示するのが一般的な経路となる。また結果そのものは連携可能なソフトウェアへ送信し、任意のアクションを起こさせるキーとしても利用できる。
ここで注目したいのが、音声認識経路である。現在利用できる音声認識は、ChromeおよびEdgeを利用した音声認識・オフライン認識・UDトーク利用・ゆかコネ用Whisperの4タイプである。ゆかりねっとプラグイン経由は現在は殆ど使っていないものとして除外する。またブラウザ経由の場合はgumbek氏によって製作されたSpeechRecognitionWebを利用することもできる。
タイプとしては、UDトーク以外は単一のPCで完結するもので、UDトークはiOS/Androidアプリ経由の音声認識であるため、通常は別途でスマートフォンが必要になる。ただし、Android版に限りPCで利用できるエミュレータを経由すれば単一のPCで完結することはできる。これら音声認識は、役割は全く同じであるがそれぞれは異なる特徴を持ち、利用する音声認識によって出力される結果が異なることが言えるはずだ。同じ音声を入力しても、まるで違う認識結果になるというのはよくあることだ。
そこで1つ、検証したいことが出来た。それぞれの音声認識は一体どのような特徴を持ち、どのような人に向いているのか。音声認識を実行させて結果を比較すれば、その答えを得ることができるはずだ。そういうわけで、現行最新版のゆかコネをベースに、実際に検証した。
ゆかコネと音声認識の差異
検証準備
まずは検証にあたり、必要なものを用意する。
- ゆかコネ(最新版):執筆時点での最新版はv2.1.30(開発版)
- YNC-Whisper:公開版は現在v0.0.2。インストール方法などはここでは割愛
- 音声データ:入力の均一化のために使う。12パターンを用意
まずゆかコネが必要であることは間違いない。またYNC-WhisperはPython3.11.7(3.12では動作しないと公式発表)が推奨環境で、NVIDIA系GPU(最低動作保証1000番台以降)でなければ動作しない。加えてGPUへの負荷がかなりかかるものになり、性能もGPUに依存するため、参考資料の1つとして用意するものになる。もっとも、ゆかコネ自体CPUに依存するため、反応速度も使用時の状況とCPU性能で大きく変わる可能性があるということになる。
検証では当然音声入力が必要になるが、その音声はコンディションによって結果が変わることを防ぐために録音音声を使用する。音声はノイズ除去を行ったものをWAV形式で12個用意し、それぞれは一言、長文、複数区切りなどで複数のパターンを用意する。実際の環境ではマイクからの入力をノイズ除去を行わずに直接音声認識に使用しているため、それとは結果が異なる場合があるが、おおよそ結果に近ければ検証結果として問題ないはずだ。また、UDトークへの認識はBlueStacks 5のUDトークを利用するものとして話を進める。
スポンサーリンク
スポンサーリンク
検証開始
検証を開始する。検証にあたっては一部パーツのスペックも一部影響を与えるものと考え記載する。直接的影響が少ないマザーボードは除外する。
- CPU: i7-9700
- GPU: EVGA RTX 2080 Ti XC Ultra
- SSD: NETAC N535S 256GB
- HDD: Seagate BarraCuda ST4000DM004 4TB
検証時はOBSで通常配信する状態に近い構成で、7種類の音声認識1つずつに対して12パターンの録音音声を流し、それを録画する。したがって録画データは7個生成される。また、このときの音声認識および字幕・翻訳表示として、音声認識過程表示を有効、連続発話者向きオプションは利用可能な場合有効にし、表示時間は7秒としている。
検証結果
結果については、まず表で音声認識元のデータ(正解音声)と音声認識タイプを表に一覧として表す。
データ1 | テスト用音声の録音を開始します。 |
データ2 | はいお疲れ様でした、さようなら。 |
データ3 | パスタソースは、別にその市販品じゃなくてもいいんですよ。家にあるその身近な調味料を使えばいいですよ。 |
データ4 | パスタは1回80gに落とす、その代わりに野菜をたくさん入れること。 |
データ5 | ブランド着てる奴って、結局見えだけなんじゃないですかって。あのSTAY TUNE1)Suchmosの楽曲。でも、なんかそんなようなフレーズありますよ。 |
データ6 | みーちゃん2)海乃みうの愛称。食べたい。 |
データ7 | メインシステム、戦闘モード起動。 |
データ8 | やっぱりね、BTOじゃ満足しなかったから。だから俺は自作にこだわったわけ。 |
データ9 | 俺は嫌いなものには嫌いって言う、自分に嘘をついたってしょうがないからな。 |
データ10 | 作戦目標クリア、システム通常モードに移行します。 |
データ11 | 別に好きなようにやればいいと思うよ、長生きしたって正直良いことないと思ってるから。 |
データ12 | 騙されたな! |
音声認識1 | Microsoft Edge SpeechRecognitionWeb使用 |
音声認識2 | Microsoft Edge デフォルト認識 |
音声認識3 | Google Chrome SpeechRecognitionWeb使用 |
音声認識4 | Google Chrome デフォルト認識 |
音声認識5 | ゆかNEO オフライン認識 |
音声認識6 | UDトーク(BlueStacks 5 QR接続) |
音声認識7 | YNC-Whisper v0.0.2 |
次に上記の条件のもと、各音声を流して音声認識を行い、日本語の認識結果および英語の認識結果を記載する。なお、翻訳にはGoogle Apps Scriptを使用している。
音声データ | 音声認識1JP | 音声認識1EN | 音声認識2JP | 音声認識2EN | 音声認識3JP | 音声認識3EN | 音声認識4JP | 音声認識4EN | 音声認識5JP | 音声認識5EN | 音声認識6JP | 音声認識6EN | 音声認識7JP | 音声認識7EN |
データ1 | テスト用音声の録音を開始します。 | Start recording the test audio. | テスト用音声の録音を開始します。 | Start recording the test audio. | テスト用 音声の録音を開始します | Start recording test audio | テスト用 音声の録音を開始します。 | Start recording test audio. | テスト用 音声の録音を開始します | Start recording test audio | テスト用音声の録音を開始します。 | Start recording the test audio. | テスト用音声の録音を開始します | Start recording test audio |
データ2 | はい、お疲れ様でした、さようなら。 | Yes, thank you for your hard work. Goodbye. | お疲れ様でしたさようなら。 | Thank you for your hard work. Goodbye. | はい お疲れ様でした さよなら | Yes, thank you for your hard work Goodbye | はい お疲れ様でした さようなら。 | Yes, thank you for your hard work. Goodbye. | はいお疲れ様でしたさよなら | Yes, thank you for your hard work. Goodbye. | はい お疲れ様でした。
さようなら。 |
Yes, thank you for your hard work.
Goodbye. |
はいお疲れ様でしたさよなら | Yes, thank you for your hard work Goodbye |
データ3 | パスタソースはべつにその市販品じゃなくていいんですよ。 家にあるその身近な調味料を使えばいいですよ。 |
Pasta sauce doesn’t necessarily have to be a store-bought product. You can use the seasonings that are readily available at home. |
ソースはべつにその市販品じゃなくていいんですよ。 家にあるその身近な調味料を使えばいいですよ。 |
The sauce doesn’t necessarily have to be a commercial product. You can use the seasonings that are readily available at home. |
パスタソースは別に市販品じゃなくていいんですよ 家にあるその身近な調味料を使えばいいですよ |
The pasta sauce doesn’t have to be a store-bought product. You can use the seasonings that are readily available at home. |
パスタソースはべつにその市販品じゃなくていいんですよ。 家にある その身近な調味料を使えばいいですよ。 |
Pasta sauce doesn’t have to be a commercially available product. You can use the seasonings that are readily available at home. |
パスタソースは別にそう市販品じゃなくていいですよ 家でにあるその道から調味料を使えばいいですよ |
The pasta sauce doesn’t have to be a store-bought product. Just use the seasonings you have at home. |
家のある、その身近な調味料を使えばいいですよ。
※1 |
You can use seasonings that are familiar to you at home. | パスタソースは別に市販品じゃなくていいんですよ 家にある身近な調味料を使えばいいですよ |
Pasta sauce doesn’t have to be a store-bought product. You can use seasonings that are readily available at home. |
データ4 | パスタは一回8ogに落とす。その代わりに野菜をたくさん入れること。 | Reduce the amount of pasta to 80g at a time. Add lots of vegetables instead. | パスタは一回80gに落とす。その代わりに野菜をたくさん入れること。 | Reduce the amount of pasta to 80g at a time. Add lots of vegetables instead. | パスタは1回 80g に落とすその代わりに野菜をたくさん入れること | Reduce the amount of pasta to 80g per serving and add lots of vegetables instead. | パスタは1回 80g に落とす その代わりに野菜をたくさん入れること。 | Reduce the amount of pasta to 8og per serving and add lots of vegetables instead. | パスタは一回八十クラブに落とすその代わりに野菜をたくさん入れること | Drop the pasta into the 80 club at once and add lots of vegetables instead. | ※2 | Reduce the amount of pasta to Sog at a time. Add lots of vegetables instead. ※3 |
パスタは1回80gに落とすその代わりに野菜をたくさん入れること | Reduce the amount of pasta to 80g per serving and add lots of vegetables instead. |
データ5 | ブランド着てるやつって? 結局見えだけなんじゃないですかって? Stay tuneでもなんかそんなようなフレーズありますよ。 |
Who wears brands? After all, isn’t it just what it seems? Stay tune also has a phrase like that. |
ブランド着てるやつって? 結局見えだけなんじゃないですかって? あのステイチューンでもなんかそんなようなフレーズありますよ。 |
Who wears brands? After all, isn’t it just what it seems? There’s a phrase like that in that stay tune as well. |
ブランド着てるやつって 結局三重だけなんじゃないかって あの STAY TUNE でもなんかそんなようなフレーズありますよ |
Who wears a brand? I guess it’s just Mie after all. Even in STAY TUNE, there is a phrase like that. |
ブランド着てるやつて。 結局三重だけなんじゃないですかって。 もなんかそんなようなフレーズありますよ。 |
The one wearing the brand. After all, it’s only Mie, right? There are some phrases like that. |
ブランド着てるやつて。 結局右だけんじゃないですかって ステイ中坊だかそんなような触れずありますよ |
Tell me the brand is coming After all, isn’t it only the right one? There’s no such thing as a stay-at-home boy. |
ブランド着てるやつって、 けっ極右、三重だけなんじゃないすかって。 あのステイ中でも、なんかそんなようなフレーズありますよ。 |
The one who wears the brand, I wonder if it’s just the extreme right-wing people in Mie. Even during that stay, there are some phrases like that. |
ブランド着てるやつって 結局見るだけなんじゃないですかって ステイチューンでもそんなようなフレーズありますよ |
Who wears a brand? After all, it’s just a matter of looking, right? There is a phrase like that in Stay Tune as well. |
データ6 | びいちゃん食べたい。 | I want to eat Bi-chan. | みーちゃん食べたい。 | I want to eat Mi-chan. | みーちゃん食べたい。 | I want to eat Mi-chan | みーちゃん食べたい。 | I want to eat Mi-chan. | ビーチは食べたい | I want to eat at the beach | ※2 | I want to eat B-chan. | みーちゃん食べたい | I want to eat Mi-chan |
データ7 | メインシステム、戦闘モード起動。 | Main system starts battle mode. | メインシステム、戦闘モード起動。 | Main system starts battle mode. | メインシステム 戦闘モード 起動 | Main system battle mode startup | メインシステム 戦闘モード 起動。 | Main system battle mode activated. | メインシステム戦闘モード起動 | Main system combat mode activated | ※2 | Main system battle mode activated. | メインシステム戦闘モード起動 | Main system combat mode activated |
データ8 | やっぱりでb toじゃ満足しなかったから。だから俺は自作にこだわったわけ。 | After all, I wasn’t satisfied with b to. That’s why I focused on making my own. | ええb toじゃ満足しなかったから。だから俺は自作にこだわったわけ。 | Yes, because I wasn’t satisfied with b to. That’s why I focused on making my own. | やっぱりね BTO じゃ満足しなかったからだから俺は 自作にこだわったわけ | After all, I wasn’t satisfied with BTO, so that’s why I stuck to making it myself. | やっぱりね BTO じゃ満足しなかったからだから俺は 自作にこだわったわけ。 | After all, I wasn’t satisfied with BTO, so that’s why I insisted on making my own. | やっぱりでBTOじゃあ満足しなかったからだから俺は自作にこだわった訳 | After all, I wasn’t satisfied with BTO, so that’s why I insisted on making my own. | やっぱりね、BTOじゃ満足しなかったから だから俺は自作にこだわったわけ。 |
After all, I wasn’t satisfied with BTO. That’s why I focused on making my own. |
やっぱりBTOじゃ満足しなかったから だから俺は自作にこだわったわけ |
I wasn’t satisfied with BTO after all. That’s why I decided to make my own |
データ9 | 俺は嫌いなものには嫌いって言う。 自分に嘘をついたってしょうがないからな。 |
I say I hate things I hate. There’s no point in lying to yourself. |
俺は嫌いなものには嫌いって言う。 自分に嘘をついたってしょうがないからな。 |
I say I hate things I hate. There’s no point in lying to yourself. |
俺は嫌いなものには嫌いっていう 自分に嘘をついたってしょうがないからな |
I hate what I hate There’s no point in lying to yourself |
俺は嫌いなものには嫌いっていう自分に嘘をついたってしょうがないからな。 | There’s no point in lying to myself and saying that I hate things I hate. | 俺は嫌いなものにが嫌いっていう自分に嘘をついたしょうがないから | I can’t help but lie to myself by saying that I hate things I hate | 自分に嘘をついたってしょうがないからな。
※1 |
There’s no point in lying to yourself.
※1 |
俺は嫌いなものには嫌いって言う 自分に嘘をついたってしょうがないからな |
I say I hate to those I hate There’s no use lying to yourself |
データ10 | 作戦目標をクリアシステム通常モードに移行します。 | Clear the mission objective and switch to normal system mode. | 作戦目標をクリアシステム通常モードに移行します。 | Clear the mission objective and switch to normal system mode. | 作戦目標をクリア 通常モードに移行します |
Clear the mission objective Go to normal mode |
作戦目標クリアシステム通常モードに移行します。 | Operation objective cleared The system will switch to normal mode. | 作戦目標をクリアシステム通常ボードに移行します | Clear the mission objective and move to the normal board | 作戦目標クリアシステム、通常モードに移行します。 | Operation objective clear system will transition to normal mode. | 作戦目標クリアシステム通常モードに移行します | Operation objective clear system transition to normal mode |
データ11 | 別に好きなようにやればいいと思うよ。 長生きしたって正直いいことないと思ってるから。 |
I think you should do whatever you like. Honestly, I don’t think living a long life is a good thing. |
別に好きなようにやればいいと思うよ。 長生きしたって正直いいことないと思ってるから。 |
I think you should do whatever you like. Honestly, I don’t think living a long life is a good thing. |
別に好きなようにやればいいと思うよ 長生きしたって正直いいことないと思ってるから |
I think you should do whatever you like. Honestly, I don’t think living a long life is a good thing. |
別に好きなようにやればいいと思うよ。 長生きしたって 正直 いいことないと思ってるから。 |
I think you should do whatever you like. Honestly, I don’t think living a long life is a good thing. |
別に好きなようにやればいいと思うよ 長生きしたって正直いいことないと思ってるから |
I think you should do whatever you like. Honestly, I don’t think living a long life is a good thing. |
別に好きなようにやればいいと思うよ。 長生きしたて正直いいことないと思ってるから。 |
I think you should do whatever you like. Honestly, I don’t think there’s anything good about living a long life. |
別に好きなようにやればいいと思うよ 長生きしたって正直いいことないと思ってるから |
I think you should do whatever you like. Honestly, I don’t think living a long life is a good thing. |
データ12 | 騙されたな。 | I was fooled. | 出たな。 | It’s out. | 騙されたな | I was fooled | 騙されたな。 | I was fooled. | 騙されたなぁ | I was fooled | ※2 | I was fooled. | 騙されたな | I was fooled |
※1 前半は何故かUDトークが音声認識を確定させなかったため、取りこぼしが発生している。
※2 UDトーク上では確定したものの、ゆかコネ側では何故か表示されなかった。
※3 後半だけしか翻訳されていない。
文面での結果は上記の通りとなった。殆どの音声認識は想定通りの結果になっている。しかし1つ気になるのが、UDトークの「取りこぼし」である。これはおそらくエミュレータ環境が影響しているものと考えられるが、音声認識が確定しないこと、確定しても日本語の結果を字幕として表示してくれない現象を何度か確認した。この部分に関してはエミュレータの性能を上げるか、精度が高いとされるiOS版をiPhoneから実行すると精度が上がるものと推測される。また、UDトークの直接接続がエミュレータでは何故かできなかったこともあるので、直接接続ができれば伝達速度も上がるはずだ。
細かい部分での比較としては、音声認識のタイプによって漢字とひらがなになるかが異なり、読点および句点がつかない場合があることだ。これは殆どの場合で問題は発生しないが、翻訳に際し少しだけその意味が変わる可能性があり、意図したものと異なる意味になる場合は注意が必要になるだろう。もっとも、全く同じ文に対して翻訳を実行してもタイミングで結果が異なることを実際に観測しているため、これらは実際に使うときには差異として許容すべきことになる。
動画データ
当然のことながら、動画データも用意した。
データ1
データ2
データ3
データ4
データ5
データ6
データ7
データ8
データ9
データ10
データ11
データ12
動画データからの評価
動画から分かることとして、ゆかコネ内蔵のオフライン認識はブラウザ・UDトーク・Whisper(GPUモード)を介さない分反応速度が非常に速い。その分音声認識精度は劣り、ノイズ除去が完璧であっても想定通りの結果には至らないことが分かる。これに関しては使用する場合許容しなければならないことである。もっとも、翻訳機能はその特性上オンラインでなければ使用できないので、オフライン認識は非常用、負荷軽減用として使うくらいで普段は出番がないであろう。
次にブラウザ間の違いとして、Edgeは読点および句点がつき、Chromeは読点が殆どつかない代わりに半角空白を使用している。字幕可読性の観点から、通常は前者のEdgeを使用した方が良く、これは翻訳結果にも影響する。またChromeの場合はSpeechRecognitionWebを使用する場合、句点も省略される仕様になっているようである。これへの対応はゆかコネ内蔵のプラグインを利用して強制的に半角空白を読点に変える等の処理を行えば修正できる可能性がある。ただしこの場合、他の翻訳結果にも影響を及ぼすことが考えられるので使用は熟考すべきである。
UDトークに関しては検証条件が特殊すぎたことを考慮すると、今回の結果はあまり参考にならないであろう。また、直接接続でないこともこの結果の悪さを物語っていると考えている。かといって反応速度を上げるためにBlueStacksのスペックを上げるのは配信自体に影響を及ぼすことが簡単に予想されるので、別でスマートフォンを用意した方が安定すると考えられる。ただしその場合、ノイズ除去が難しいものになるので、精度低下は許容しなければならない。UDトークの機会は、所謂「コラボ配信」の時に使用することになるであろう。
最近実装されたYNC-Whisperは、機械学習の応用でもあるため音声認識精度はかなり高く、確定後表示速度もブラウザ利用とほぼ変わらない速度で行われる。ただし音声認識の特性上過程表示は不可能であり、確定後に一気に出すタイプとなる。これはゆかコネの設定に依存しない。その分翻訳表示も余裕があるものになる。気になることとしては、ChromeでSRWを使用した時と同様、句読点がつかないことである。ここはプラグインによる整形で対応することになると思われる。
使い分けの考察
これまでの結果からどう使い分けていくかを考える。まずブラウザ利用は、文章性でEdge, 正確性でChromeと判定できる。これは認識結果から判断したものである。ゆかコネでの説明としては、変換精度はEdge、ゲーム用語はChromeという認識である。今回の結果から考えるに、Edgeの変換精度とは文章らしいかどうかであるということになる。逆にゲーム用語に強いとされるChromeは、文章らしさを犠牲にして「単語」の正確性が高いものと考えることができる。使用時はこれらを考慮して選択するといいだろう。ここでChromeを選択する場合、SRWを使用しない組み合わせを推奨する。それは最低限残しておきたい句点までも消失してしまうからだ。ブラウザ利用の場合は入力時のノイズが若干影響しやすいが、入力時ノイズ除去ができれば正確性はより上がると推測される。なお、実際に使用したときに確認したこととして、Chromeは「積極的に確定・復帰」をONにしないと認識が確定されない現象が何回もあったので、もしChromeを使用する場合はこのオプションを併用する必要がある。
オフライン認識はとにかく速い。しかしその分精度は犠牲になる。ノイズが乗っていれば影響を大きく受けることも簡単に予想できる。今回はノイズ除去済みの録音音声を利用したがそれでも認識ミスが発生している。辞書との併用であれば多少は改善があるとは思われるが、その場合は設定量が膨大となるため、速度重視で辞書設定が面倒に感じない人向けということになるであろう。当然、ノイズ除去は前提である。
UDトークについては、音声認識精度を高めたい場合と、コラボ配信によって自分以外の字幕を出す場合に使用することになる。ただし私の環境ではどうにも、BlueStacks 5版UDトークではうまくいかず、音声認識の取りこぼしもあって思っていたような結果を得ることはできなかった。きちんと構成すれば効果が得られる組み合わせであることは間違いないはずで、このあたりはUDトークをよく使っているcleaちゃんに訊いてみるのが早い。
YNC-Whisperは応答性、正確性共に良好である。しかしGPU動作を前提とするもので、要求されるVRAMも最低値想定で2GB消費する。最低動作保証はGTX1000番台からだが、1050Ti(4GBモデル)で既に半分消費することになるので、実用性を考えれば2000番台までは”XX80Ti”系でないと難しいであろう。また、これについては実際の配信で使用したことがある。感想としては、ノイズ除去を適切に行わないと、ノイズも音声として認識してしまうことを観測した。これは閾値調整によってノイズをどこまで削るかによって対応するのが暫定処理となるであろう。その場合、話者の音量が必要になるのがネックである。解決策としてYNC-Whisperは起動時にデバイス選択ができるので、非常に無理矢理な方法としてDAW経由でノイズフィルタを適用し、仮想オーディオデバイスから認識させるという手もある。表示遅延が多少発生することが予想されるが、GPUに余裕があり、設定が面倒でないならかなり高い精度で音声認識ができるはずだ。ただし句読点が省略されるので、場合によっては整形が必要である。
ゆかコネ本体の設定では音声認識の過程表示を行っているが、字幕(母国語)が表示されない現象がある場合はこれを結果のみ表示にすることで、多少の改善が見られるものと推測される。ただしこの設定はUDトークとYNC-Whisperはそもそも反映されないので、その2つで表示されない現象がある場合はこれでは解消できないため、別途対応が必要になる。
結論:それぞれの特徴から、自分に合ったものを選んで使う
以上で検証を終了する。ゆかコネを使うようになって総計2年1ヶ月、音声認識の精度は日に日に上がっており、加えて音声認識経路も増えている。そんな中で気になったのが、それぞれの音声認識の正確性や反応速度だった。これらを可能な限り検証して比較すれば、どれが「自分の用途に合っているか」を見つけることができ、音声認識精度などで悩んでいる人に資料として提供できるはずだと考えたからである。そして今回の検証を行ったのである。
実のところ検証のヒントはうーちゃんと話し合って見つけたものでもある。入力の一律化を行うため録音音声を使用し、その結果から正答率/誤字率、反応速度等を数値化するというのが当初の予定ではあったが、明確な数値化はこれにおいては難しかった。何故なら「殆ど差がないくらい変わらない」ためである。ただそれぞれの音声認識時にそれを動画データとして録画し、音声を流すタイミングで揃えて7種類の音声認識パターンを同時再生するように動画を編集、それを1音声ずつ12個に切り分けたことで、視覚的な比較がしやすいようにした。そこから今回の結果、そして考察に繋がったというわけである。
普段使用している時は意識しなかったが、検証で発見した「句読点の有無の違い」は大きい。これは読み方に影響するだけでなく、翻訳時の結果にも影響するからだ。英文ではカンマとピリオドが付くかどうかだけでなく、ある文章があったとき、それを一続きの文章とみなすか、句読点によって区切られた文章とみなすかで意味が変わる。Chromeは半角空白を読点として扱っているような処理であったが、必ずしもそう処理してくれるとは限らないのがコンピュータの悲しいところだ。なので正確に翻訳してほしい場合はEdgeを利用するといい、というのが言えるわけである。
道具をどう使うかはその人次第であるが、少なくともこの結果は多くにとって役に立つものになるはずだ。
以上、ゆかコネ検証報告:音声認識の種類とそれぞれの違い、であった。道具を知って、自分のスタイルを知って、それを使いこなせ。
KIBEKIN at 00:00 Jan. 22th, 2024
スポンサーリンク