ML/DL tools function library


Keywords
Deep, Learning, Machine, Neural, Networks, Natural, Language, Processing, Computer, Vision, machine-learning, deep-learning, tts, utility-library, voice-processing
License
GPL-3.0
Install
pip install guang==0.0.8.1.6

Documentation

Guang

image image image image

Universal function library of scientific calculation.

Requirements

Python 3
CUDA >= 10.0
PyTorch >= 1.0
Tensorflow >= 1.12.0
opencv-python
pydub
librosa
pyworld
soundfile
pypinyin
pomegranate
python-Levenshtein
streamlit
pyprobar
fire

Installation

# Before install `guang`, you need to have all the requirements installed.
pip install guang

​ Nightly Build

git clone https://github.com/beidongjiedeguang/guang.git
cd guang
python ./night_workflow.py

Examples

  • Convert audio in .mp3/ .wav format to (sample rate=16k, single channel) .wav format

    Use in bash/shell

    guang cvt2wav INPUT OUTPUT

    Use as function

    from guang.Voice.convert import cvt2wav
    cvt2wav(input_name, output_name, sr=16000)
    
    # Multi-process
    from guang.Voice.convert import multi_cvt2wav 
    multi_cvt2wav(PATH1, PATH2,sr=16000, n_cpu=None)
  • Let the video play at N times speed (install ffmpeg first)

    guang av_speed inputname outputname N --cut_frame=False
  • Fourier visualization

    guang fourier
  • Fourier draw anything

  • FFT convolution

    from guang.sci import fft
    A = np.random.rand(100, 100)
    B = np.random.rand(100, 100)
    fft.fft_conv2d(A, B)
  • Use dict_dotable to convert a dictionary to dot-able dictionary:

    from guang.Utils.toolsFunc import dict_dotable
    a = {'a':{'b':1}}
    a = dict_dotable(a)
    print(a.a.b)
    
    >> 1
  • Use probar to display current progress has separated to pyprobar

    from guang.Utils.bar import bar, probar
    for idx, x in probar(range(10)):
        time.sleep(0.8)
    
    >> 100.00% |█████████████████████████████| 0'7.2"|0'7.2" ETC: 12-2 23:59:8
    
    N = 1024
    a = np.linspace(2, 5, N)
    for idx, i in enumerate(a):
        time.sleep(0.01)
        bar(idx, N)
    >> 100.00% |█████████████████████████████| 0:00:00|0:00:10  ETC: 02-19 20:33:34 
  • @broadcast broadcast a non-broadcast function.

    from guang.Utils.toolsFunc import broadcast
    
    @broadcast
    def f(x):
        # A function that can map only a single element
        if x==1 or x==0:
            return x
        else:
            return f(x-1)+f(x-2)
    
    >> f([2,4,10])
    >> array([1, 3, 832040], dtype=object)
  • download download files from google drive.

    from guang.Utils.google import download
    url = "https://drive.google.com/open?id=1eU57Fkv1DBEOqi-iOs1AebD02FqVDY23"
    outname = "filename.zip"
    download(url, outname)
  • txt2ph Convert Chinese characters to phoneme.

    from guang.Voice.txt2pinyin import txt2ph
    txt2ph('你好,我是光')
    
    >> [('n', 'i3'), ('h', 'ao3'), ('sp1',), ('uo3',), ('sh', 'ii4'), ('g', 'uang1')]
  • reduce_from_duration Remove files with duration less than least_time seconds. Note that this function does not work in the interactive interpreter because it uses multiprocessing.pool.Pool

    from guang.Voice.reduce import reduce_from_duration
    
    reduced_list = reduce_from_duration(path_list, least_time=2)
    print(len(path_list), len(reduced_list))
    
    >> (6889, 6714)
  • Find NOT silence part of a sound file: find_no_silence

    from guang.Voice.reduce import find_no_silence
    start, end, arg_start, arg_end = find_no_silence(filename)
  • Download wechat files.

    from guang.wechat.Utils.download import downloads
    downloads(nickName='caloi', fileType='mp3', d_t=60)
  • Plots 3D Scatter:

    from guang.Utils.plotly import Scatter3d
    from guang.Utils.interesting import Lorenz
    trace = Lorenz.Trace()
    x,y,z = trace[:,0], trace[:,1], trace[:,2]
    
    fig = Scatter3d()
    fig.scatter3d(x,y,z,mode="lines+markers",color_line=z,color_marker=None,marker_size=2)
    fig.show()
  • Data dimension reduction:

    cd guang/ML/manifold
    python test_digits.py
    python test_s_curve
  • 😃