123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- #!usr/bin/env python
- # -*- coding: utf-8 -*-
- # author: kuangdd
- # date: 2019/12/1
- """
- local
- """
- from pathlib import Path
- from functools import partial
- from multiprocessing.pool import Pool
- from matplotlib import pyplot as plt
- # from tqdm import tqdm
- import collections as clt
- import os
- import re
- import json
- import numpy as np
- import shutil
- import logging
- logging.basicConfig(level=logging.INFO)
- def run_spectrogram():
- from aukit import audio_spectrogram as asp
- from aukit import audio_griffinlim as agf
- from aukit import audio_io as aio
- from aukit.audio_player import play_audio
- inpath = r"E:/data/temp/01.wav"
- wav, sr = aio.load_wav(inpath, with_sr=True)
- print(wav.shape, sr)
- play_audio(wav, sr)
- lin_gf = agf.linear_spectrogram(wav)
- wav_gf = agf.inv_linear_spectrogram(lin_gf)
- play_audio(wav_gf, sr)
- mel_sp = asp.mel_spectrogram(wav)
- mel_sp = asp.mel2linear_spectrogram(mel_sp)
- wav_sp = agf.inv_linear_spectrogram(mel_sp)
- play_audio(wav_sp, sr)
- linear_gf = agf.linear_spectrogram(wav)
- mel_lin = agf.linear2mel_spectrogram(linear_gf)
- linear_mel = agf.mel2linear_spectrogram(mel_lin)
- wav_2 = agf.inv_linear_spectrogram(linear_mel)
- mel_sp = asp.mel_spectrogram(wav)
- mel_fea = asp.mel_spectrogram_feature(wav)
- # plt.figure()
- # plt.subplot("311")
- # plt.pcolor(linear)
- # plt.subplot("312")
- # plt.pcolor(linear2)
- # plt.subplot("313")
- # plt.pcolor(mel_fea)
- # plt.show()
- wav_ms = agf.inv_mel_spectrogram(mel_sp)
- wav_mf = agf.inv_mel_spectrogram(mel_fea)
- play_audio(wav_ms, sr)
- play_audio(wav_mf, sr)
- def run_world():
- from aukit import audio_world as awd
- from aukit import audio_player as apr
- from aukit import audio_io as aio
- inpath = r"E:/data/temp/01.wav"
- # sr, x = wavfile.read(inpath)
- x, sr = aio.load_wav(inpath, with_sr=True)
- f0, sp, ap = awd.world_spectrogram(x, sr)
- y = awd.inv_world_spectrogram(f0, sp, ap, sr)
- apr.play_audio(x, sr)
- apr.play_audio(y, sr)
- def create_readme():
- from aukit import readme_docs
- docs = []
- with open("README.md", "wt", encoding="utf8") as fout:
- for doc in readme_docs:
- fout.write(doc)
- docs.append(doc)
- return "".join(docs)
- def run_tuner():
- import aukit
- from aukit.audio_tuner import tune_speed, tune_pitch
- inpath = r"hello.wav"
- aukit.anything2bytes(inpath)
- aukit.anything2wav(inpath)
- aukit.anything2bytesio(inpath)
- bys = tune_speed(inpath, sr=16000, rate=0.5, out_type=None)
- print(bys)
- wav = tune_pitch(bys, sr=16000, rate=1, out_type=None)
- print(wav)
- aukit.play_audio(wav)
- def run_noise_remover():
- import aukit
- inpath = r"hello.wav"
- wav = aukit.load_wav(inpath)
- out = aukit.remove_noise(wav)
- aukit.play_audio(out)
- def run_player():
- import aukit
- inpath = Path(r"E:\data\aliaudio\examples\ali_Aibao_000001.wav")
- wav = aukit.load_wav(inpath, sr=16000)
- wav = aukit.change_voice(wav, mode="assign_pitch", alpha=200)
- aukit.play_audio(wav, volume=0.5)
- def run_aukit():
- import time
- t0 = time.time()
- from aukit.audio_io import __doc__ as io_doc
- from aukit.audio_editor import __doc__ as editor_doc
- from aukit.audio_tuner import __doc__ as tuner_doc
- from aukit.audio_player import __doc__ as player_doc
- from aukit.audio_noise_remover import __doc__ as noise_remover_doc
- from aukit.audio_normalizer import __doc__ as normalizer_doc
- from aukit.audio_spectrogram import __doc__ as spectrogram_doc
- from aukit.audio_griffinlim import __doc__ as griffinlim_doc
- from aukit.audio_changer import __doc__ as changer_doc
- from aukit.audio_cli import __doc__ as cli_doc
- from aukit.audio_world import __doc__ as world_doc
- t1 = time.time()
- print(t1 - t0)
- def compare_hparams():
- from aukit.audio_griffinlim import default_hparams as gfhp
- from aukit.audio_spectrogram import default_hparams as sphp
- a = set(gfhp.items()) - set(sphp.items())
- b = set(sphp.items()) - set(gfhp.items())
- print(a)
- print(b)
- def run_normalizer():
- import aukit
- from aukit.audio_player import play_sound
- from aukit import audio_normalizer as ano
- inpath = r"hello.wav"
- wav, sr = aukit.load_wav(inpath, with_sr=True)
- out = ano.remove_silence(wav)
- out = ano.tune_volume(wav, target_dBFS=-10)
- play_sound(out, sr)
- def run_editor():
- import aukit
- from aukit.audio_player import play_sound, play_audio
- from aukit import audio_editor as aed
- inpath = r"hello.wav"
- wav, sr = aukit.load_wav(inpath, with_sr=True)
- aud = aed.wav2audiosegment(wav, sr)
- out = aed.strip_audio(aud)
- wav = aed.audiosegment2wav(out)
- out = aed.remove_silence_wave(wav, sr=sr)
- out = aed.strip_silence_wave(out, sr=sr)
- print(len(wav), len(out))
- play_audio(out, sr)
- from aukit.audio_editor import convert_format_os
- def convert_format(x):
- return convert_format_os(**x)
- def run_cli():
- from aukit.audio_cli import pool_jobs
- from pathlib import Path
- indir = Path(r"E:\lab\zhrtvc\data\samples\aishell")
- outdir = Path(r"E:\lab\zhrtvc\data\samples_wav\aishell")
- kw_lst = []
- for inpath in indir.glob("**/*.mp3"):
- parts = inpath.parent.relative_to(indir).parts
- name = "{}.{}".format(inpath.stem, 'wav')
- outpath = outdir.joinpath(*parts, name)
- outpath.parent.mkdir(exist_ok=True, parents=True)
- kw = dict(inpath=str(inpath), outpath=str(outpath), in_format=None, out_format='wav')
- kw_lst.append(kw)
- pool_jobs(func=convert_format, n_process=14, kwargs_list=kw_lst, tqdm_desc='convert_format')
- if __name__ == "__main__":
- print(__file__)
- # run_spectrogram()
- # run_world()
- # create_readme()
- # run_tuner()
- # run_noise_remover()
- # run_player()
- # run_aukit()
- # compare_hparams()
- # run_normalizer()
- # run_editor()
- # run_cli()
|