YYProbeに実装した「笑いが増える」音声認識技術の話(後編)
前回の記事では、笑い声をアプリで使う例を紹介しました。今回は、笑い声を検出する仕組みについて紹介したいと思います。
概要
さまざまな笑い声のサンプル音声を機械学習させたモデルを作成し、各端末でリアルタイムに判定を行っています。学習させた音声データは、現時点で1500発言程度です。これらを30程度にクラス分けしました。
モデルの生成
モデルの生成にはiOSで利用しやすいようにCreateMLを利用してみました。
CoreMLのサンプルモデルをAppleが準備してくれています。しかし、音声系のモデルはほとんどありません(今後も日本人の音声モデルは用意されないと思います)。そこで、CreateMLを使って音声モデルを自前で作ることにしました。
先にも書きましたが、笑い声の音声データを1500サンプルぐらい学習させました。そのデータを使って実際の会議で利用し、未認識、誤認識したサンプルを再学習させて……という作業を繰り返し、認識精度を高めていきました。
また、笑い声は、男性・女性、大人・子供、個人・集団などを区別して判定できるようにしました。次の図は、男性と女性の笑い声の判定です。男女の笑い声を判定するモデルができています。
iOS端末での笑い声の判定
iOS端末での笑い声判定方法は、SoundAnalysis Frameworkを利用しました。
また、アプリをバージョンアップせず、Modelを適宜アップデートするために、mlmodelデータをサーバーからiOSへ配信する仕組みを実装し、iOS端末のモデルデータを書き換えを可能としました。
笑い声の判定は、音声認識のテキスト化処理と形態素解析を並列で動作をさせており、結果を総合的に判断しています。
オンライン会議でも判定できる精度に
開発当初と比べて、最近はオンライン会議が増えてきました。それと同時に、スピーカー経由の声を認識させるケースが増えてきたのです。肉声の音声認識の精度は比較的良かったのですが、スピーカー経由の音声はノイズや劣化、音飛びも多く、笑い声の誤判定がたくさん出ていました。そういった誤判定は、日々学習を重ね改善しています。今は、オンライン会議でも判定できる精度になってきています。
次回は、さまざまな分析機能の仕組みについて解説する予定です。
リアルタイム音声認識アプリYYProbe(Lite版)はこちらからダウンロードいただけます。無料でご利用いただけます。
この記事が気に入ったらサポートをしてみませんか?