dotnetでTeamsのトランスクリプトを活用

dotnetでTeamsのトランスクリプトを活用

dotnetでTeamsのトランスクリプトを活用

仕事でTeamsを使っている人は多いのではないでしょうか。
その流れでTeams会議を使っている可と思いますが、Teams会議には文字起こし機能「トランスクリプト」が存在します。
精度は少々残念ですが、自動的に作成してくれ、かつ話者ごとに分割して表示してくれます。

皆さんはこのトランスクリプトを活用したいと思ったことはないでしょうか。
できればトランスクリプトを議事録の作成に使いたいと思ったことはあると思います。しかし、ダウンロードできるVttファイルは、そのままではデータ操作しにくいものです。
なので今回私はトランスクリプトを活用するべく、VttファイルCSVファイルに変換し、かつフィラー除去(※)などを行えるライブラリを作成したので、ここで紹介したいと思います。
※「あ、」や「えっと」などの不要語を取り除くこと


自作ライブラリ紹介

ライブラリはGitにアップしているので、ぜひ活用していただければと思います。(こう処理を変えるとよいなどのアドバイスいただけると嬉しいです。)
Transcript4CSV

基本的には使い方はREADME.mdに記載してはいますが、こちらでもざっくり紹介します。

  1. dllをプロジェクトに追加
  2. Gitのリリースからdllをダウンロードしていただき、自分のプロジェクトに追加してください。

  3. usingの追加
  4. 呼び出すファイルにusingを追加します。

     using Transcript4CSV;

  5. インスタンスの作成
  6. インスタンスを作成します。引数には読み込みたいVttファイルのパスを入力します。

     TranscriptProcess transcript = new TranscriptProcess("vttPath");

  7. 読み込んだVttファイルを処理する
  8. インスタンスを作成した際に指定したVttファイルを処理するためのメソッドを呼び出します。

     transcript.MakeCSVList();

  9. 必要に応じた処理を実行
    • CSVファイルを作成する
    •  transcript.WriteCSVFile("outputPath");

    • データをListで取得する
    •  var list = transcript.GetCSVData();

これで一通りの処理を実行できます。


サンプル実行

先程ライブラリの使用方法を紹介したので、実際にサンプルデータを用いて実行してみます。
サンプルとなるトランスクリプトは下記になります。
※ユーザ名は変換しています。

WEBVTT

00:00:00.000 --> 00:00:03.150
<v user1>はい。トークスクリプトのテストです。</v>

00:00:03.970 --> 00:00:07.400
<v user1>ええ文字起こしがされているかを確認します。</v>

00:00:09.510 --> 00:00:16.130
<v user2>はい、このトランスクリプトを元にええ稼働確認がされることを確認します。</v>

00:00:19.120 --> 00:00:25.240
<v user1>ええ作成されたトランスクリプトは、vttファイルでダウンロードします。</v>

00:00:27.050 --> 00:00:35.520
<v user1>ええそのファイルを指定してインスタンスを作成し、csvデータ作成のメソッドを実行します。</v>

00:00:37.670 --> 00:00:43.090
<v user1>はい。最後にそのデータをcsvファイルに出力すれば完了です。</v>

00:00:46.010 --> 00:00:50.290
<v user1>ええトランスクリプトデータの作成は以上です。</v>

00:00:51.740 --> 00:00:55.160
<v user2>はい、このデータで検証を実施します。</v>

00:00:56.480 --> 00:00:57.350
<v user2>以上です。</v>

ライブラリを使ったプログラムは下記のようになります。

 using Transcript4CSV;

 var vttPath = "/root/log/Transcript_2023-10-04.vtt";
 TranscriptProcess transcript = new TranscriptProcess(vttPath);
 transcript.MakeCSVList();
 transcript.WriteCSVFile("/root/log/csv.csv", true);

実行した結果は下記になります。

 Speaker,Text,StartTime,EndTime
 user1,トークスクリプトのテストです。文字起こしがされているかを確認します。,00:00:00.000,00:00:07.400
 user2,このトランスクリプトを元に稼働確認がされることを確認します。,00:00:09.510,00:00:16.130
 user1,作成されたトランスクリプトは、vttファイルでダウンロードします。そのファイルを指定してインスタンスを作成し、csvデータ作成のメソッドを実行します。最後にそのデータをcsvファイルに出力すれば完了です。トランスクリプトデータの作成は以上です。,00:00:19.120,00:00:50.290
 user2,このデータで検証を実施します。以上です。,00:00:51.740,00:00:57.350

結果を見て分かる通り、「ええ」や「はい。」などの不要語(フィラー)を削除した上で、話者ごとにテキストをまとめています。
実際の会議中などは不要語(フィラー)が入りやすく、トランスクリプトだけを見ると分かりにくいので、これを自動的に見やすくしてくれます。

なお、今回はCSVファイルで出力しましたが、Listの状態で取得することもできるので、以降の処理を自由にカスタマイズすることも可能です。


さいごに

いかがだったでしょうか。今回はTeamsトランスクリプトを活用するライブラリを紹介しました。
ノイズになる不要語(フィラー)を除去することもできるので、出力されたファイルはデフォルトのトランスクリプトより見やすくなっています。
Teams会議後の議事録作成により活用しやすくなると思いますので、ぜひ使って見てください。

今回はこの辺で、ではまた!!

コメント

このブログの人気の投稿

PowerAppsで座席表を作成する

Power Automateでファイル名から拡張子を取得

Power AutomateでTeamsのキーワードをトリガーにする