音声入力でテニスの試合のスコアを記録してみた
公開日:
最終更新日:2019/07/22
2019/07/22
タイトルの通り、音声入力でテニスの試合のスコアを記録してみました。
なぜ音声入力か?
ずっと前から、試合のスコア記録を音声入力でできないかなあと思っていました。理由は2つ。
1つは、記録作業をもっと楽にしたいから。たまに、アプリを使って試合の記録をしたりしますが、プレーをて、アプリ画面をみて、と視点の行き来があるのでけっこう疲れるし大変です。
作業が大変だと肝心のプレー内容に集中できなくなるので、記録作業をもっと楽にできないかなと。
そして、2つ目は、自分の試合を記録したいから。現状自分の試合を記録する場合、試合をみてくれる第3者(仲間、コーチなど)に頼んで試合を記録してもらうことになるかと思います。人に頼まずとも自分の試合を記録できたらいいと思っていて、その解決策がスマートウォッチ+音声入力だと考えています。
ポイント間で身に着けたスマートウォッチに音声入力でスコアの内容を記録していく、というイメージです。
最近のスマホは、高い精度で音声を認識してくれますし、試してみる価値はあるかなと思い、音声入力でテニスのスコアを記録してみました。
錦織の試合を記録
試合は、先日行われた2019年 ウィンブルドン 3Rの錦織vsジョンソン戦。
第1セットだけ記録してみました。
音声入力でテキストデータ作成⇒スコアやスタッツデータに変換
以下の手順で試合内容を記録し、スコアやスタッツデータに変換しました。
①音声入力でテキストデータを作成
②テキストデータをテニスの試合データ(スコアやスタッツデータ)に変換
音声入力は、Googleの「音声文字変換」アプリを使いました。
Googleの「音声文字変換」アプリを使い、試合をみながら音声入力でデータを記録していきました。
音声入力で作成したテキストデータ
一部抜粋したテキストデータです。
*フォア、バックとショット毎にフォアかバックかを記録していますが、今回はスタッツ集計には用いていません。
前処理
テキストデータをスコアデータに変換する前に、前処理を施します。
誤認識した文字を変換しました。
ポルト、ボルト、はると⇒フォルト
あとは、チャレンジでやり直しになったポイントがあるので、それらを消去しました
テキストからテニスの試合データ(スコアやスタッツデータ)に変換する
スクリプト言語Pythonで文字列処理することで、テキストデータをテニス用のスコアデータに変換しました。
文字列処理といっても大したことはしていなく、基本的には以下3つのことをやっています。
・錦織ポイント⇒錦織のポイント
・ジョンソンポイント⇒ジョンソンのポイント
・フォルト⇒2ndサーブとして処理
そして、ポイントをスコアに換算してゲームカウントやスタッツの計算を行いました。
スコアやスタッツ
ゲームカウントは錦織から6-4
総ポイント数 70
錦織のトータルポイント 39
ジョンソンのトータルポイント 31
錦織の1stサーブポイント率 88%
ジョンソンの1stサーブポイント 29%
錦織の2ndサーブポイント率 29%
ジョンソンの2ndサーブポイント 21%
と実際のポイント数やポイント率と一致することを確認しました。
フォア、バックと全ショットを記録しましたが、今回はスタッツ集計を省略しました。
あとサーブのコース(ワイド、ボディ、センター)も同様です。
今後やりたいこと
音声認識、実用に耐えうる認識率でしたし、何より楽に入力できることを実感しました。
今後は、アプリケーションに落とし込んでいきたいなと。
音声でポイント内容を入力し、瞬時にスコアやスタッツに変換してくれたら便利ですよね。
開発するためのまとまった時間がなかなかとれませんが、時間ができたらアプリ作成を進めていきます。