その1の検証で分かったこと。
・区読点、改行がないと読みづらい
・音声ファイルの長さによって、精度が異なる、音声の一部が省略されてしまう?

『ReazonSpeech』があれば、議事録は取らなくていい!? その1 からの続きになります。

 
一度、Google Colab環境で『ReazonSpeech』を実行できるので、試してみました。
Google Colab ReazonSpeech

 
『Google Colab』とは?
ブラウザからPythonを記述、実行できます。
環境構築が不要で、簡単に共有できる便利なサービスです。
 

『Google Colab』では、15秒以下の音声を対象にしているようなので、『VOICEPEAK』で15秒の音声ファイルを作成し、流してみました。

実際の音声 実行結果

本日はご多忙の中、お時間を作ってくださり、ありがとうございます。
いえいえ、こちらこそ、ありがとうございます。

本日はごちそうのお時間を作ってくださりありがとうございますいえいえこちらこそありがとうございます

「ご多忙」が「ごちそう」になってしまいました。
 

続いて『VOICEPEAK』ではなく、私の声で試してみました。

実際の音声 実行結果

本日はご多忙の中、お時間を作ってくださり、ありがとうございます。
いえいえ、こちらこそ、ありがとうございます。

ほんじつはご家庭のなかおじかんをつくってくださりありがとうございます

「ご多忙」が「ご家庭」になっています。
「ご多忙」という言葉を判断するのは難しい??
それよりも「いえいえ、こちらこそ、ありがとうございます。」がカットされている!!

今回は書きませんが、『VOICEVOX』の音声でも試しました。
滑舌やアクセント、イントネーションなどによっても結果は変わりました。
そう考えると、私の滑舌が悪すぎて、後半見捨てられてしまったのでしょうか。

…滑舌の事は、いったん忘れる事にしましょう。

 
こちらで、試してみる事にしました。
① 音声ファイルを15秒以内、「。」の所で分割する。
② 分割したファイルを『ReazonSpeech』を使用して出力する。

音声ファイルを分割するソースコードを書く予定でしたが、『VOICEPEAK』で音声ファイルを分割して出力できたので、分割するコードは省きました。

import datetime
import sys
import soundfile
from espnet2.bin.asr_inference import Speech2Text

speech2text = Speech2Text.from_pretrained(“reazon-research/reazonspeech-espnet-v1”)

f = open(‘/var/www/ReazonSpeech/result_reazonspeech.txt’, ‘a’, encoding=’UTF-8′)

number = 1
while number <= 62:
 speech, rate = soundfile.read(‘/var/www/ReazonSpeech/’ + str(number).zfill(3) + ‘.wav’)
 assert rate == 16000, f”Invalid sampling rate: {rate}”

 f.write(speech2text(speech)[0][0])
 f.write(‘\n’)
 number += 1

f.close()

4分17秒 の音声ファイルに対し、出力完了まで 23分53秒 かかりました。
待った結果が、こちらです。

『実際の音声』 – 空白行毎に音声ファイルを分割しています。
『実行結果』 – 比較しやすくする為、『実際の音声』の行と合わせています

実際の音声 実行結果
本日はご多忙の中、お時間を作ってくださり、ありがとうございます。
いえいえ、こちらこそ、ありがとうございます。

…それでは、始めましょうか。
はい。

今日の打ち合わせの目的は「ポケモンの捕まえ方について」です。
できれば、5分くらいで、ポケモンの捕まえ方をお伝えし、理解いただければ…と思っておりますので、ご協力よろしくお願いいたします。

おっと。あまり時間がありませんね。
…そうですね。
あまり時間を掛けてしまうと、時間帯によっては、ポケモンがいなくなってしまう可能性がありますので…申し訳ございません。

いえいえ、おっしゃる通りです。では、さくっとはじめましょうか。
あっ、はい。ありがとうございます。

では、さっそく…弊社が考えた「ポケモンの捕まえ方」です。

資料をお渡しします。
そちらをご覧いただきながら、説明したいと思います。

よろしくお願いします。

皆さんもご存じの通り、モンスターボールを投げる事で、ポケモンを捕まえる事はできます。
…ただ、ポケモンが強くなってきますと、1度、モンスターボールを投げるだけではポケモンは捕まえられません。

そうなんだよねー、困ったことに。

…はい。
そこで、「ポケモンを弱らせる」という方法がございます。
攻撃をして体力を減らす、または、麻痺状態などの状態異常にします。その後、モンスターボールを投げると、ポケモンは捕まえやすくなります。

ほほう?

ただし!
ここで、注意して頂きたいのは、ポケモンを倒してはダメです。

…! そうか! 倒してしまったら、ポケモンを捕まえられないもんねー

その通りです!
なので、倒さない程度の攻撃が必要になってきます。
 
んー、中々、難しいねー。私のポケモンは強いからねー、手加減できるかなぁ、あはは。
はい、まさにその通りで、強いポケモンばかりを旅パに選ぶのもいいですが…

あっ! 申し訳ございません。
旅パというのは、「旅パーティ」の略で、主人公と一緒に旅をする仲間のポケモンのことです。

うん、うん。分かるよ。

あ、ありがとうございます。…話を戻します。
強いポケモンばかりを旅のパーティーに入れるのもいいですが、倒さない程度のちょうどいい攻撃をしてくれるポケモンを選ばないと、このプランは成立しません!

なるほどねー
倒す事ばかり考えていたから、強いポケモンしか選んでいなかったよ。あはは

ポケモンを状態異常にするなら、麻痺や毒の技を覚えたポケモンを選ぶのもいい方法だと思います。
うん。そうだね。

滅多に表れないレアなポケモンは、絶対に捕まえたいと思います。
それは、そうだ。

その為には、事前にそのような事も考慮したポケモンを選ぶ事が重要ですね。
後は、、「特殊なボールを使う」方法です。

ああ、はいはい。ハイパーボールの事ね。
それもそうなのですが、その他にもボールがあります。

なにー!? ハイパーボールだけじゃないのか!!
はい! そうなんです!!
 
ど、どんなボールなんだ? 教えてくれ。
もちろんです。

例えば、水や虫タイプのポケモンを捕まえやすい『ネットボール』。
捕まえたことのあるポケモンが捕まえやすい『リピートボール』
戦闘開始直後に使うと捕まえやすい『クイックボール』などなど、様々なボールがあるのです!

現在あるボールの種類を資料に書いておりますので、詳しくは資料をご覧ください。
ほぉぉ。こんなにも種類があるのか…

そうなんです。
適材適所で使い分けていただければ、ポケモンは捕まえやすくなります!

ふー、ただモンスターボールを投げてるだけじゃぁダメなんだね。
そういう時代が来ました。

…今日は、ありがとう。充実した時間だったよ。

こちらこそ、ありがとうございます。
途中、熱が入ってしまい、聞きづらい点があったかもしれません。

いやいや、それがよかったよ。あはは
あはは

お時間を作ってくださりありがとうございます

こちらこそありがとうございます

それでは始めましょうか
はい

今日の打ち合わせの目的はポケモンの捕まえ方についてです
できれば5分くらいでポケモンのつかまえ方をお伝えしていただければと思っておりますのでご協力よろしくお願いいたします

あまり時間がありませんね
そうですね
あまり時間をかけてしまうと時間帯によってはポケモンがいなくなってしまう可能性がありますので申し訳ございません

ではサクッと始めましょうか
はいありがとうございます
 
 
では早速A社が考えたポケモンの捕まえ方です
はい

そちらをご覧いただきながら説明したいと思います
 
 

よろしくお願いします

皆さんもご存じのとおりモンスターボールを投げることでポケモンを捕まえることができます
ただポケモンが強くなってきますと一度モンスターボールを投げるだけではポケモンは捕まえられません

困ったことに

はい
そこでポケモンを弱らせるという方法がございます
その後モンスターボールを投げるとポケモンは捕まえやすくなります
 
 

ここ

ただし
ここで注意していただきたいのはポケモンを倒しては駄目です

そうか倒してしまったらポケモンをつかまえられないもんね

そのとおりです
なので倒さない程度の攻撃が必要になってきます
 

なかなか難しいね私のポケモンは強いからね手加減できるかな
はいまさにそのとおりで強いポケモンばかりをたびに選ぶのもいいですが

申し訳ございません
というのは旅パーティーの略で主人公と一緒に旅をする仲間のポケモンのことです

分かるよ

話を戻します
すごいポケモンだかりを旅のパーティーに入れるのもいいんですが倒さない程度のちょうどいい攻撃をしてくれるポケモンを選ばないとこのプランは成立しません

なるほどね
そういうことばかり考えていたからすごいポケモンしか選んでいなかったよ

ポケモンをめちゃくちゃにするならまずは毒の技を覚えたポケモンを選ぶのもいい方法だと思います
そうだね

めったに現れないレアなポケモンは絶対に捕まえたいと思います
そうだ

そのためには事前にそのようなことも考慮したポケモンを選ぶことが重要ですね
特殊なボールを使う方法です

はいはいハイパーボールのことね
そうなのですがそのほかにもボールがあります
 

ハイパーボールだけじゃないのか
そうなんです

教えてくれ
もちろんです

例えば水や蒸しタイプのポケモンを捕まえやすいネットボール
捕まえたことのあるポケモンが捕まえやすいリピートボール
開始直後に使うと使いやすいクイックボールなどなどさまざまなボールがあるのです

現在あるボールの種類を数量に書いておりますので詳しくはご覧ください
こんなにも種類があるのか

そうなんです
適所で使い分けていただければポケモンは捕まえやすくなります

ただモンスターボールを投げてるだけじゃダメなんだね
時代が来ました

ありがとう充実した時間だったよ

ありがとうございます
熱が入ってしまい聞きづらい点があったかもしれません

それがよかったよ
はい

区読点がないので若干読みづらいですが、改行を入れる事で、かなり読みやすくなりました。

誤認識や日本語のおかしい所もありますが、音声が大幅にカットされる事もなかったので、大体の会話は理解できました。
これにより、音声ファイルが長いと精度が落ちる事が分かりました。

個人的には、余計な音声「あ!」、「んー」、「あはは」などの部分がカットされているのが良かったです。
実際の議事録にも必要ないので。

先程のコードに『音声を分割する』、『区読点をつける』ソースコードを追加すれば、60% – 70%くらいは議事録としても使用できるのではないでしょうか。
見直し、修正は必要ですが、少しは楽ができる! はずです。