import base64 | |
def decode_base64_to_audio( | |
base64_string: str | |
) -> bytes: | |
""" | |
Decode a base64 string to audio bytes and optionally save to file. | |
Args: | |
base64_string (str): Base64 encoded string | |
output_path (Optional[Union[str, Path]]): Path to save the decoded audio file | |
Returns: | |
bytes: Decoded audio bytes | |
Raises: | |
ValueError: If the base64 string is invalid | |
IOError: If there's an error writing the file | |
""" | |
try: | |
audio_bytes = base64.b64decode(base64_string) | |
return audio_bytes | |
except base64.binascii.Error as e: | |
raise ValueError(f"Invalid base64 string: {e}") | |
except IOError as e: | |
raise IOError(f"Error writing audio file: {e}") | |
def encode_audio_to_base64(byte_data: bytes) -> str: | |
try: | |
base64_encoded = base64.b64encode(byte_data).decode('utf-8') | |
return base64_encoded | |
except IOError as e: | |
raise IOError(f"Error reading audio file: {e}") | |