DataTennis. NET

データテニス ドットネット

音声入力でテニスの試合のスコアを記録してみた

公開日:

   

タイトルの通り、音声入力でテニスの試合のスコアを記録してみました。

なぜ音声入力か?

ずっと前から、試合のスコア記録を音声入力でできないかなあと思っていました。理由は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%

と実際のポイント数やポイント率と一致することを確認しました。

フォア、バックと全ショットを記録しましたが、今回はスタッツ集計を省略しました。
あとサーブのコース(ワイド、ボディ、センター)も同様です。

今後やりたいこと

音声認識、実用に耐えうる認識率でしたし、何より楽に入力できることを実感しました。
今後は、アプリケーションに落とし込んでいきたいなと。
音声でポイント内容を入力し、瞬時にスコアやスタッツに変換してくれたら便利ですよね。

開発するためのまとまった時間がなかなかとれませんが、時間ができたらアプリ作成を進めていきます。

 - blog, アプリ, データ分析