[音声認識] 文字起こしツールWhisperを使ってみよう

音声認識

Whisperとは?

Whisperは何をするツール?

OpenAIのWhisperは音声認識AIの文字起こしツールです。会議の文字起こし動画の文字起こし・翻訳 などが可能です。

Introducing Whisper
We’ve trained and are open-sourcing a neural net called Whisper that approaches human level robustness and accuracy on E...

Whisperの特徴

多様なデータを学習

68万時間以上の多様なデータを学習した音声認識・文字起こしツールです。

98言語の識別ができる

98言語の識別文字起こし、そして音声英訳を単一のフレームワークで実行可能とすることで、高い汎用性と精度を実現しています。ちなみに日本語の文字起こし精度は98言語中6位です。

多様なファイル形式

m4a、mp3、mp4、mpeg、mpga、wav、webm に対応可能

先進的なTransformer技術の採用

Transformer技術とは?

Transformerは下記の技術を踏まえ、文脈理解シーケンス間の複雑な関係高精度にモデリングできます。

Self-Attention(自己注意機構)

各入力の要素が他の全要素との関係を計算し、入力シーケンス内の情報を動的に重み付けし、これにより文脈理解が深まります

Positional Encoding(位置エンコーディング)

シーケンスの順序情報をモデルに提供し、単語の順序位置の関係性を捉えます。

エンコーダーとデコーダーのスタック

エンコーダー入力を高次の特徴表現に変換し、デコーダーこの表現を用いて出力シーケンスを生成します。両者は複数の層で構成され、各層はSelf-Attentionと前方向フィード(Feed Forward)ネットワークから成ります。

前方向フィードネットワーク(Feed Forward Networks)

各位置で独立して作用し、非線形変換を提供する。

Whisperの欠点

Whisperの唯一の問題点は、25MB以下の音声ファイルしかアップロードができないことです。(2024年1月時点)そこで解決方法の一つを紹介します。

解決方法

音声を分割する

Macの場合

Macに標準搭載されている「ミュージックアプリ」を使用

「ミュージックアプリ」を起動して、分割したい曲を右クリックして、表示されるメニュから「情報を見る」をクリックする。
 「オプション」タブで、「メディアの種類」の選択ボックスから分割したい音声の種類を指定する。  
  「開始」にチェックを入れ、開始時間を設定する。「停止」にチェックを入れ、終了時間を設定する。
設定が完了したら、「OK」ボタンを押します。
ファイルの分割は完了しましたが、このままではファイル形式がAACファイルなので「ミュージックアプリ」を使ってmp3ファイルに変換します。

まずはメニューバーで「ミュージック」>「環境設定」の順に選択します。

次に「ファイル」タブをクリックして「読み込み設定」をクリックします。
「読み込み方法」からMP3エンコーダを選びます。

これで無事、分割したファイルをmp3ファイルに変換することができました。

2つのバージョン

Whisperには以下の2つのバージョンが存在します。(2024年2月時点)

  • API版(whisper-1)有料だが高精度(2023年3月公開)
  • GitHub版無料で使える(2022年9月公開)

API版(whisper-1)とGitHub版の違い

API版(whisper-1)

Whisper-1largeモデル(large-v2)がデフォルトです。

GitHub版

5つのモデルが選べる
モデル名パラメータ数必要なGPUメモリ
tiny39 M〜1 GB
base74 M
〜1 GB
small244 M〜2 GB
medium769 M〜5 GB
large
1550 M
〜10 GB

利用料金

GitHub版は無料で利用可能ですが、API版(whisper-1)は利用料金が必要です。支払いにはクレジットカードが必要です。

Pricing
Simple and flexible. Only pay for what you use.

API版(whisper-1)の使い方

APIキーの取得

OpenAIのAPIの取得の仕方は下記リンクを参照してください。

[画像生成] APIでDALL-E 3を使ってみよう
APIを使ってDALL-E 3モデルで画像生成を行います。画像生成のポイントはプロンプトの工夫です。プロンプトは、生成される画像の具体的なビジョンをAIに伝えるための重要なツールであり、表現手法、色彩、画像のイメージを織り交ぜることで、より精密で意図に沿った結果を得ることができます。

環境準備

今回はGoogle Colaboratoryを使って説明します。

音声ファイルを用意する

今回は青空朗読から谷崎潤一郎の『刺青』の朗読ファイルを使います。

青空朗読 | 青空文庫に所蔵されている本を朗読しています
「青空朗読」はインターネット上の図書館である「青空文庫」に掲載されている本を朗読することで、小説や童話、歴史、社会科学などの優れた作品をもっと多くの人々に味わっていただけるのではないかと始まったプロジェクトです。

ファイルをダウンロードできたらGoogleColabにファイルをアップロードします。Colabのファイル画面からファイルをアップロードできます。

音声ファイルの文字起こし(API版)

実際にファイルの文字起こしを行ってみます。

  1. ライブラリのインポート
!pip install openai

2. 先ほど取得したAPIキーを入力します。

import os
import getpass
os.environ["OPENAI_API_KEY"] = getpass.getpass('OpenAI API Key:')

3. 文字起こしのスタイル、モデル、ファイル、フォーマットを指定します。

from openai import OpenAI
client = OpenAI()


# 音声の文字起こし (オーディオファイルをカレントフォルダに置いておきます)
audio_file= open("/content/irezumi.mp3", "rb")

# translations:英訳文字起こし(スタイル)
transcript = client.audio.translations.create(
  model="whisper-1",
  file=audio_file,
  response_format="text"
    )

print(transcript)

コードを実行後に文字起こしされた文書です。まず英訳文字起こしをしてから日本語にする方が文字起こしの精度が良いので、まずは英文に翻訳してからChatGPTを用いて翻訳します。

TANIZAKI JUNICHIRO SAKU SHISEI It was a time when people still had the noble virtue of being foolish, and the world was a self that was not as fierce as it is now. In the past, all beautiful things were powerful, and all ugly things were weak. Everyone worked hard to be beautiful, but in the end, it was up to them to put paint on the bodies of the poor. Violent, or violent, lines and colors danced on the skin of the people of that time. Passers-by on the Umami-chis chose the Kago-kaki, which had splendid carvings. The women of Yoshiwara and Tatsumi also fell in love with the man with beautiful carvings. Bakuto and Tobinomono, on the other hand, used to carve, and the elders sometimes carved samurai. At the carving session, which was sometimes held in Ryogoku, the three carvers hit each other's skins, showing off their strange costumes. There was a young carver named Seikichi.

ChatGPTを使って上記の英文を日本語訳してみます。

谷崎潤一郎作『刺青』には、まだ人々が愚かであることの高貴な美徳を持ち、今ほど世界が厳しくなかった時代がありました。過去には、すべての美しいものが力を持ち、すべての醜いものが弱かったのです。誰もが美しくあろうと努力しましたが、結局のところ、貧しい者の身体に絵の具を塗ることになるのは彼ら自身でした。暴力的、あるいは激しい、線と色が当時の人々の肌の上で踊りました。馬喰町を通る通行人は、立派な彫刻の入った駕籠を選びました。吉原や辰巳の女たちも、美しい彫刻をした男に恋をしました。一方で、博徒や飛び物は彫り物を用い、老人たちも時には侍を彫りました。両国で時折開かれた彫り物会では、三人の彫師が互いの肌に打ち合い、奇妙な衣装を披露しました。青吉という名の若い彫師がいました。

文字の崩れが少ないのでやはり英文に文字起こしをしてから、ChatGPTを使って翻訳するやり方がおすすめです。DeepLやGoogle翻訳でも問題なさそうですが、やはりChatGPTの翻訳技術の方がやや上であると感じました。

GitHub版の使い方

環境準備

GitHub版のWhisperもAPI版と同じくGoogle Colaboratoryを使います。

GitHub版は大きなモデルをインストールしなくてならないためランタイムをGPUに切り替える必要があります。

API版と同様にColaboratory上に音声ファイルをアップロードします。

音声ファイルの文字起こし(GitHub版)

  1. GitHub経由でWhisperをインストールします。
!pip install git+https://github.com/openai/whisper.git

2. 文字起こしのデル名、言語の指定をします。

import whisper
#モデル名はtiny / base / small / medium / largeのいずれか
model = whisper.load_model(“モデル名”)
result = model.transcribe(“音声ファイルのpath”, verbose=True, language='en')
print(result[“text”])

API版と比べると文字起こしの時間が格段に速いのが特徴です。

まとめ

Whisperは会議の文字起こし、動画の文字起こし・翻訳などで出番が多いツールであり、特に海外の講義や重要な情報などを扱いたい場合は有効利用できるのではないかと感じました。実際に英文の文字起こしは素晴らしく、ChatGPT Plusで翻訳をした結果、文章の乱れも少なく使えるツールであると興奮しました。Whisperは世界中のコミュニケーションをよりアクセスしやすくすることを可能にした革新的なツールであると考えます。

おまけ / 研究コーナー

ChatGPT PlusのDALL-E 3

OpenAIのDALL-E 3の可能性を見出すべく、ChatGPT PlusのDALL-E 3を使って生成画像を作る上で有効的なプロンプトを生成してみたいと思います。

プロンプトの役割・条件・キーワード

<役割>
あなたは世界的に有名な画家で趣味は写真を撮ることです。最近は描いてきた絵の見識美を活かして小説も書き始めました。

<プロンプト>
下記の条件を踏まえながら、条件とキーワードを踏まえてDALL-E3を使った画像生成に有効なプロンプトを作ってください。

<条件>
・表現手法
・色彩
・画像のイメージ(モノクロ、アニメ風など)

<キーワード>
・シンギュラリティ
・刺青(タトゥー)
・音楽

ChatGPT Plusの返答

「シンギュラリティの到来を象徴する未来都市の中で、複雑な刺青(タトゥー)を身に纏ったアーティストが、電子音楽に合わせてペイントをする様子を描いた画像。このシーンは、デジタルアートの手法で描かれ、鮮やかなネオンカラーで彩られているが、アーティストとその作品のみがカラーで、残りの背景はモノクロで表現されている。アーティストの刺青は、音楽の波形や電子回路の模様を思わせ、未来と伝統の融合を表している。」

生成されたプロンプトを使って画像生成

プロンプトの補足説明

表現手法

デジタルアートとしての手法が採用されており、モダンな感覚が求められます。

色彩

ネオンカラーを基調としつつ、モノクロの背景を用いることで、主題の強調と対比を生み出しています。

画像のイメージ

未来都市とシンギュラリティを象徴する雰囲気の中で、音楽とアートの融合がテーマになっています。アーティストの刺青(タトゥー)が特徴的なディテールとして取り入れられ、音楽に対する深い関連性や、テクノロジーと人間性の結びつきを示唆しています。

まとめ

このプロンプトを使用することで、DALL-E 3は、「技術と芸術が交差する独自の世界観を持つ画像」を生成することができたと言えます。

コメント

タイトルとURLをコピーしました