Gladiaで話者識別の音声to文字起こし
またまた、音声生成AIを調査しております。
今日は、私の相談にいつも気さくに乗っていただける弁理士の山田龍也さんから情報をいただいた「Gladia」を調査します。
山田龍也さんは、アイデアの守護者であり、未来を形作る戦略家です。アイデアを出した個人を法的に保護し、その独自性を確保するための専門知識を駆使してくれます。
私も山田さんから、「もっと讃良屋さんのアイデアや技術を、大切にしなさい!」とお叱りと教えをいただいたことがあり、その時のことを、私は今でも大切に心に持っています。
山田龍也さんのリンク↓
Gladiaとは
OpenAI社のWhisperをカスタマイズし、話者分離させることに成功したフランスの会社です。
さっそく結果から報告
完ぺきに話者分離してくれました。入力した音声はこちら↓
https://saratec.me/contents/sample.wav
出力された結果は次の通り
話者分離は完璧です!
漢字変換が、ところどころ間違っていますね。
そこで、Whisperで音声テキスト変換を行った話者分離されていない結果をもちいて、GPT4oに修正してもらいましょう。
GPT4oに次のようにプロンプトを実行させてみました。
結果はご覧の通り
完ぺきですね。
ここまで話者分離した会話がテキスト化できれば、議事録作成も近い可能性がでてきました。
まとめ
録音ファイルを用意する
↓
Gladiaで話者分離した文字起こしを用意
Whisperで話者分離していない文字起こしを用意
↓
GPT4oで両方の情報を調整する
↓
話者分離した文字起こしが完成する!
ここから先はGPT4oに議事録にしてもらえば良いということですね。
サービス化するには、ユーザーに
音声ファイルをセットしてもらう
何人で話しているかを入力してもらう
議題が過去から続きモノであれば、過去の議事録のテキスト
これくらいを用意していただけると、議事録がささっと数分で出来あがりますね。
作ってみましょう!
プログラムはこちら
python
import requests
url = "https://api.gladia.io/v2/transcription"
payload = {
"context_prompt": "話者は二人です。Aさん、Bさんと表現してください",
"custom_vocabulary": ["AI"],
"detect_language": True,
"enable_code_switching": True,
"language": "jp",
"callback_url": "http://callback.example",
"subtitles": True,
"subtitles_config": {"formats": ["srt"]},
"diarization": True,
"diarization_config": {
"number_of_speakers": 2,
"min_speakers": 1,
"max_speakers": 2
},
"translation": True,
"translation_config": {
"target_languages": ["en"],
"model": "base"
},
"summarization": True,
"summarization_config": {"type": "general"},
"moderation": True,
"named_entity_recognition": True,
"chapterization": True,
"name_consistency": True,
"custom_spelling": True,
"custom_spelling_config": {"spelling_dictionary": {
"Gettleman": ["gettleman"],
"SQL": ["Sequel"]
}},
"structured_data_extraction": True,
"structured_data_extraction_config": {"classes": ["Persons", "Organizations"]},
"sentiment_analysis": True,
"audio_to_llm": True,
"audio_to_llm_config": {"prompts": ["Extract the key points from the transcription"]},
"custom_metadata": {},
"sentences": True,
"display_mode": True,
"audio_url": "https://saratec.me/contents/sample.wav"
}
headers = {
"x-gladia-key": "ご自身のGlasiaAPIKeyを指定してください",
"Content-Type": "application/json"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
url2 = "https://api.gladia.io/v2/transcription/{}".format(response.json()["id"])
headers2 = {"x-gladia-key": "ご自身のGlasiaAPIKeyを指定してください"}
response2 = requests.request("GET", url2, headers=headers2)
print(response2.text)
讃良屋安明公式ブログあります。お時間のある時に覗いてみてください。
会社のサイトはこちら