Spaces:
Sleeping
Sleeping
File size: 1,328 Bytes
b11304e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
from typing import Optional
from google import genai
from google.genai import types
import requests
import os
def analyze_audio(audio_url: str, analysis_prompt: Optional[str] = None) -> str:
"""
Transcribes audio files to text using Google Gemini model. Supports various audio formats including MPEG, MP3, WAV, M4A, etc.
Args:
audio_url (str): Url path to an audio file to anlyze
analysis_prompt (Optional[str]): Optional prompt for specific analysis focus
Returns:
str: Text containing analysis results
"""
try:
# Initialize Google Gen client
gemini_llm = genai.Client(api_key=os.getenv("GOOGLE_API_KEY"))
print(f"Analyzing audio from URL {audio_url}")
text=analysis_prompt or "Provide a detailed transcription of this audio."
audio_bytes = requests.get(audio_url).content
audio = types.Part.from_bytes(data=audio_bytes, mime_type="audio/mpeg")
# Get response from Gemini Flash 2.0 Vision
response = gemini_llm.models.generate_content(
model="gemini-2.0-flash",
contents=[text, audio],
)
print(response.text)
return response.text
except Exception as e:
return {"error": f"Error analyzing audio: {str(e)}"} |