import gradio as gr import openai import os from io import BytesIO import tempfile import boto3 s3 = boto3.client( 's3', aws_access_key_id=os.environ["AWS_ACCESS_KEY_ID"], aws_secret_access_key=os.environ["AWS_SECRET_ACCESS_KEY"], region_name='ap-northeast-1' ) def create_meeting_summary(uploaded_audio): openai.api_key = os.environ["OPENAI_API_KEY"] transcript = openai.Audio.transcribe("whisper-1", open(uploaded_audio, "rb"), response_format="verbose_json") transcript_text = "" for segment in transcript.segments: transcript_text += f"{segment['text']}\n" bucket_name = "ling-transcribe" file_name = f"test.txt" s3.put_object(Bucket=bucket_name, Key=file_name, Body=transcript_text) download_url = os.environ["DOWNLOAD_URL"] + "test.txt" return download_url inputs = [ gr.Audio(type="filepath", label="音声ファイルをアップロード") ] outputs = [ gr.Textbox(label="ダウンロードURL") ] app = gr.Interface( fn=create_meeting_summary, inputs=inputs, outputs=outputs, title="音声文字起こしアプリ", description="音声ファイルをアップロードして、文字起こしファイルを作成します。" ) app.launch(debug=True, auth=(os.environ["USERNAME"], os.environ["PASSWORD"]))