見出し画像

生成AIを活用する - 文字起こしとブログ作成

三菱UFJフィナンシャル・グループ(以下MUFG)の戦略子会社であるJapan Digital Design(以下JDD)でTech PM(Technichal Project Manager)をしている吉竹です。Tech PMとして、プロジェクトのマネジメントや技術検証、アーキテクチャ設計等を行っています。

はじめに

生成AIは社会に大きなインパクトを与え、アイデアの創出や業務効率化への活用が期待されています。しかし、生成AIを実際にどのように活用できるのか、まだ実感できていない人も多いのではないのでしょうか。

私個人としては ChatGPT や Anthropic, perplexity といったツールを日々活用しています。また、JDDとしても、各種大規模言語モデル(LLM)の検証や関連した開発を行ったり、 GitHub Copilot や Copilot for Microsoft 365 といったツールを利用したり、その有用性を試してみています。

この記事では、生成AIをどのように活用できるか試した事例をご紹介します。
今回は、「文字起こしとブログ作成」がテーマです。

ブログ生成の流れ

ブログの作成は、自分の頭の中を整理しつつ誰にも読みやすい文章を考えるという意味で、それなりに負荷のかかる作業です。一方で、考えていることやブログにしたいネタがある程度自分の頭の中にあり、それをブツブツと喋ってブログに起こすことができれば、大きな効率化に繋がるのではないでしょうか。

そこで、今回は以下の流れを検証します。

今回検証するブログ生成の流れ
  1. オンライン会議ツールが出力した未加工の文字起こし(ファイル)をLLMの入力として、整形された文字起こしを生成する。

  2. 整形された文字起こしの内容からブログを生成する。

未加工の文字起こしを直接LLMの入力としてブログを生成することもできますが、今回は一度整形された文字起こしの生成を挟みます。

ツールによる未加工の文字起こしには、人が発する「あのー」や「ええと」といったドッグワード(フィラーワード)や、機械の聞き取り違いがどうしても含まれてしまいます。一方で、これらを除きつつ出来るだけ生の発言に近い整形されたテキストが欲しいケースもあると考えています。例えば、誰がどう言ったかをほぼ全て記録する逐語録のようなテキストです。

今回はこれにも活用できないかと考え、整形された文字起こしを挟むことにします。

1. 整形された文字起こしの作成

Teamsの文字起こしファイルの用意

JDDではオンライン会議ツールとしてMicrosoft Teamsを使っています。Teamsには文字起こし(トランスクリプト)を作成する機能があるのでこれを使います。会議の設定時に有効化するか、もしくは開始後に文字起こしをオンにします。これにより、発言した内容がリアルタイムで書き起こされ、会議終了後にテキストファイルとしてダウンロードできます。

Teams での文字起こしファイルの取得

LLMでの整形

次に、ダウンロードしたテキストファイルをLLMに入力して、整形された文字起こしを作成します。
(拡張子を.vrtから.txtに変更する必要があります)

今回はAnthropicが提供するClaude 3 Opusを使います。ChatGPTの競合とされているツールで、特にContext Window(「LLMが入力出来るテキスト量」と捉えてください)が大きいことが強みとされています。注意点として、公式のAnthropicは2024/4時点で米国リージョンのみのクラウドサービスなので、会社で利用を許可されている場合を除き、業務的な内容を入力とすることは避けるべきです。今回はパブリックな内容なので利用しています。

Claude 3 Opusに、テキストファイルと以下をプロンプトとして入力します。

context:"""
- あなたはプロの編集者です
- このファイルは、Teamsの文字起こし機能を使って作成されたテキストファイルです。
- テキストには以下のようなノイズが含まれます
- ドッグワード(「あのー」や「えっと」等の無意識に出る言葉)
- 文字起こし機能が不完全なことによる、誤字、脱字
- その他Teamsにより付与されたメタ情報
- このテキストの発言は一人しかいません
- 編集者としてこれらのノイズや論理を修正する必要があります
"""

条件:"""
- テキストを読みやすいように再編集して文字起こししてください。
- 文字起こしは省略しないでください。
"""

goal: ”””
- 整形した文字起こしを出力してください。
- 最初の3000文字を出力してください
”””

実際に生成されたテキストの例は以下の通りです。入力に対して整形されていることが読み取れます。

  • 入力:未加工の文字起こし

D d d ではええ、オンライン会議ツールとして。ええ teams microsoft の teams を使っています。Teams には文字起こしトランスクリストをええ生成する機能がええありますので、ええ、これを使います。
会議のええ開始前にええまあ、自分のええしゃべり用の会議というものを設定して、その会議ええが始まったタイミングもしくは自動でタイミングでええ文字起こしええをええオンにします。
この状態で何かしらええ喋りますと、ええ、トランスクリストがええ会議中、随時作成されてリアルタイムで作成されていきます。
  • 出力:整形された文字起こし

JDDではオンライン会議ツールとしてMicrosoftのTeamsを使っています。Teamsには文字起こしのトランスクリプトを生成する機能がありますので、これを使います。
会議の開始前に自分のしゃべり用の会議というものを設定して、その会議が始まったタイミングもしくは自動でタイミングで文字起こしをオンにします。
この状態で何かしら喋りますと、トランスクリプトが会議中、随時リアルタイムで作成されていきます。

注意点

この時点で、いくつかの注意点を紹介します。

1点目は、生成されたテキストには実際に発言していない単語や表現が含まれることがあります。これは、テキストファイルには正確に文字起こしできてない単語が多く含まれており、LLMが文脈から推測して補完してテキストを生成しているためと考えられます。したがって、実際に発言した内容に沿っているかどうかは、話者による確認が必要になります。

2点目は、全量の生成を一気に行うのが難しいことです。これは、LLMが一度に生成できるテキスト量に上限があるためです。Claude 3 Opus の場合4,096トークン(日本語でおおよそ4,000字程度と捉えてください)なので、余裕を見て3,000文字ずつ(*1)出力してもらうよう指示を与えています。これを繰り返して、全体の文字起こしを生成しています。

一気に生成しようとすると、発言していない内容や途中で要約されて生成されることが多くありました。元の発言内容に沿った生成を行うためにも、出力量を制御しています。

(*1) 正確に3,000字ずつ出力されるわけではありません。実際に、私が試して出力された文字数をカウントすると1,100〜1,500字程度とばらつきがありました。

2. ブログの生成

整形された文字起こしを再びLLMの入力にしてブログを生成してもらいます。

ポイントとしては、生成したいブログを全体で何文字くらいにしたいかなどの条件をプロンプトに入れることです。これにより、条件に沿った生成が行われます。また、先ほどと同様に一気に生成せず、3,000字ずつ出力しています。

Claude 3 Opus に指示を出している様子
  • 入力:整形された文字起こし

JDDではオンライン会議ツールとしてMicrosoftのTeamsを使っています。Teamsには文字起こしのトランスクリプトを生成する機能がありますので、これを使います。
会議の開始前に自分のしゃべり用の会議というものを設定して、その会議が始まったタイミングもしくは自動でタイミングで文字起こしをオンにします。
この状態で何かしら喋りますと、トランスクリプトが会議中、随時リアルタイムで作成されていきます。
  • 出力:生成されたブログ

私が所属するJDDでは、MicrosoftのTeamsを使っています。Teamsには文字起こし機能があるので、それを活用します。
会議を始める前に、自分の発言用の会議を設定し、文字起こしをオンにしておきます。
そうすることで、話し始めると同時に、トランスクリプト(文字起こし)がリアルタイムで作成されていきます。

無事に、喋った内容からブログを生成することができました。
入力のテキストには、発言内容をそのまま文字起こししたような表現も含まれていますが、ブログとして推敲されていることがわかります。

例:トランスクリプトが会議中、随時リアルタイムで作成されていきます。
トランスクリプト(文字起こし)がリアルタイムで作成されていきます。

作成しての所感

お気付きの方もいるかもしれませんが、この記事自体も今回紹介する手法によって作られたものです。また、個人の興味も兼ねて、別の種類のブログ生成でも試しています。記事として清書するにあたって、作者が行った修正等を元に感じた所感や注意点を共有させていただきます。

ブログ作成のハードルが下がる

まず、心理的なハードルが大きく下がると感じました。
私自身、こういった記事や登壇資料の作成は定期的に行っていますが、冒頭の書き出しにいつも苦労しています。なんとなく頭の中で書こうと思っている内容から、まとまったテキストを生成できるのは、執筆のハードルを下げるのに非常に効果的だと感じました。

また、執筆時に意識する表記揺れ(例:「文字起こし」と「書き起こし」等)も、LLMが生成したテキストはある程度統一されていたので、細かいストレスが減るのは良いなと感じました。

未加工の文字起こしの質に依存する

当然ではありますが、未加工の文字起こしに誤りが多く含まれていれば生成されるテキストの精度は下がります。また、整理されていない文章構成であれば、LLMの生成するテキストもわかりづらいものになります。つまり、喋る際には文字起こし自体の精度を高めたり、構成を整理したりする工夫も必要と考えられます。

そのため、Teams会議では少しゆっくりはっきりと話すように心がけました。また、話す内容は簡易なメモを用意して、ある程度は整理された文章構造になるようにしました。

推測ですが、LLMに対するプロンプトで試行錯誤するよりは、ある程度整理された入力データを用意する方が期待する回答を得られる確率も高いのではないでしょうか。

伝えたい内容が伝わるか

何度か試す中で、LLMが生成するテキストは、一般的な内容や安易な表現にまとめられることがあると感じました。

ブログにおいて特に価値があるのは、作者独自の視点や経験に基づいた切り口の内容だと私は考えています。こういった内容が上手くLLMへ入力できていない場合、生成されたテキストからは抜け落ちてしまうことがあると感じました。

そのため、伝えたい内容が読者に伝わるブログになっているか、確認するプロセスは必要だと思います。

ブログ作成時の学びが省略されないか

ブログを作成する価値として、人に説明する文章を書くことで自分がまだ理解していない内容があることに気付き、それを調べて自分の知識に繋げられる、という点もあると私は考えています。この記事で紹介した流れの中でLLMが生成したテキストを推敲せずに使うと、こういった過程も失われます。

そのためにも、生成されたブログをしっかり確認して、疑問点や内容が甘いと感じる点に対しては自分で調べて加筆するプロセスが重要だと感じました。

最後に

今回は生成AIを活用した文字起こしとブログ作成の方法を紹介しました。

ブログの作成を行う機会は多くないかもしれません。ただ、文字起こしや考えをテキストとしてまとめることは、業務として行うケースもあるのではないのでしょうか。

先ほど、この記事も紹介した方法で作成しているとお伝えしましたが、感覚的に6割くらいの文章はLLMが生成したテキストを参考にしつつ微調整し、ほぼそのまま利用しています。皆さんがどう感じたかはわかりませんが、違和感無く読めると感じたのであれば、その有効性は感じられたのではないでしょうか。

改めて注意事項として、公式のAnthropicは許可された場合を除いて現時点 (2024/4) で業務データでの利用は避けるべきです。Anthropicは、自社のモデルをAWSやGoogle Cloudといったクラウドベンダーにも提供していますので、国内のリージョンで一般公開された際には業務での利用も検討できるかと思います。

以上、この記事が誰かの参考になれば幸いです。


Japan Digital Design株式会社では、一緒に働いてくださる仲間を募集中です。カジュアル面談も実施しておりますので、下記リンク先からお気軽にお問合せください。

この記事に関するお問い合わせはこちらにお願いします。

Technology & Development Div
Naoki Yoshitake