| import logging | |
| import os.path | |
| import subprocess | |
| import tempfile | |
| import api.base | |
| from service.tool import audio_normalize | |
| logger = logging.getLogger(__name__) | |
| # noinspection PyAbstractClass | |
| class AudioNormalizerHandler(api.base.ApiHandler): | |
| async def post(self): | |
| try: | |
| import uuid | |
| uploaded_file = self.request.files['srcaudio'][0] | |
| file_data = uploaded_file['body'] | |
| full_filename = uploaded_file['filename'] | |
| output_filename = await audio_normalize(full_filename=full_filename, file_data=file_data) | |
| if not output_filename: | |
| raise SystemError() | |
| with open(output_filename, 'rb') as f: | |
| self.set_header('Content-Type', 'audio/wav') | |
| self.set_header('Content-Disposition', 'attachment; filename="converted_audio.wav"') | |
| self.write(f.read()) | |
| await self.flush() | |
| os.remove(output_filename) | |
| except Exception as e: | |
| logger.exception(e) | |
| self.set_status(500) | |
| self.write({ | |
| "code": 500, | |
| "msg": "system_error", | |
| "data": None | |
| }) | |