Spaces:
Build error
Build error
Download audio_utils.py from Hypecat/ChessCommanderFlet: direct link, hf CLI and curl.
- Browser
- Download file 1.11 kB
-
https://huggingface.co/spaces/Hypecat/ChessCommanderFlet/resolve/main/audio_utils.py
- Command line
-
hf download hf://spaces/Hypecat/ChessCommanderFlet/audio_utils.py
-
curl -L -o audio_utils.py https://huggingface.co/spaces/Hypecat/ChessCommanderFlet/resolve/main/audio_utils.py
1.11 kB
| import asyncio | |
| import logging | |
| import flet as ft | |
| logger = logging.getLogger(__name__) | |
| async def get_base64_audio(page: ft.Page, audio_blob_uri: str) -> str | None: | |
| start_time = asyncio.get_event_loop().time() | |
| result = None | |
| try: | |
| logger.info("Result URI: %s", audio_blob_uri) | |
| logger.info("="*100) | |
| # Use the eval_js method to execute JavaScript and get the result directly | |
| result = await page.eval_js(f""" | |
| const blob = await fetch('{audio_blob_uri}').then(r => r.blob()); | |
| const base64data = await new Promise((resolve) => {{ | |
| const reader = new FileReader(); | |
| reader.onloadend = () => resolve(reader.result.split(',')[1]); | |
| reader.readAsDataURL(blob); | |
| }}); | |
| return base64data; | |
| """) | |
| except Exception as e: | |
| logger.error(f"Error in get_base64_audio: {str(e)}") | |
| finally: | |
| end_time = asyncio.get_event_loop().time() | |
| elapsed_time = end_time - start_time | |
| logger.info(f"Time taken to get base64 audio: {elapsed_time:.2f} seconds") | |
| return result |