#!/usr/bin/env python # -*- coding: utf-8 -*- """ demeter service name:__load__.py author:rabin """ from demeter.core import * from datetime import * import uuid import os import os.path import wave import tempfile from pydub import AudioSegment from uuid import getnode as get_mac from abc import ABCMeta, abstractmethod """ 将 mp3 文件转成 wav :param file: mp3 文件路径 :return: wav 文件路径 """ def convertMp3ToWav(file): target = file.replace(".mp3", ".wav") if not os.path.exists(file): Demeter.logger.critical("文件错误 {}".format(file)) return None AudioSegment.from_mp3(file).export(target, format="wav") return target """ 将 wav 文件转成 mp3 :param file: wav 文件路径 :return: mp3 文件路径 """ def convertWavToMp3(file): target = file.replace('.wav', '.mp3') if not os.path.exists(file): Demeter.logger.critical("文件错误 {}".format(file)) return None AudioSegment.from_wav(file).export(target, format="mp3") return target """ 从 wav 文件中读取 pcm :param file: wav 文件路径 :return: pcm 数据 """ def getPcmFromWav(file): wav = wave.open(file, 'rb') return wav.readframes(wav.getnframes()) """ 二进制形式写入临时文件 :param data: 二进制数据 :param suffix: 后缀名 :return: 文件保存后的路径 """ def writeTempFile(data, suffix): with tempfile.NamedTemporaryFile(suffix=suffix, delete=False) as f: f.write(data) tmpfile = f.name return tmpfile