using soxbinddings (#619)

pull/625/head
Hui Zhang 3 years ago committed by GitHub
parent d777edc605
commit d0635c6592
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

3
.gitignore vendored

@ -9,6 +9,9 @@
*.tar.gz
.ipynb_checkpoints
*.npz
*.done
tools/venv
tools/kenlm
tools/sox-14.4.2
tools/soxbindings

@ -21,6 +21,7 @@ import struct
import numpy as np
import resampy
import soundfile
import soxbindings as sox
from scipy import signal
@ -339,18 +340,18 @@ class AudioSegment(object):
raise ValueError("speed_rate should be greater than zero.")
# numpy
old_length = self._samples.shape[0]
new_length = int(old_length / speed_rate)
old_indices = np.arange(old_length)
new_indices = np.linspace(start=0, stop=old_length, num=new_length)
self._samples = np.interp(new_indices, old_indices, self._samples)
# old_length = self._samples.shape[0]
# new_length = int(old_length / speed_rate)
# old_indices = np.arange(old_length)
# new_indices = np.linspace(start=0, stop=old_length, num=new_length)
# self._samples = np.interp(new_indices, old_indices, self._samples)
# sox, slow
# tfm = sox.Transformer()
# tfm.set_globals(multithread=False)
# tfm.speed(speed_rate)
# self._samples = tfm.build_array(
# input_array=self._samples, sample_rate_in=self._sample_rate).copy()
tfm = sox.Transformer()
tfm.set_globals(multithread=False)
tfm.speed(speed_rate)
self._samples = tfm.build_array(
input_array=self._samples, sample_rate_in=self._sample_rate).copy()
def normalize(self, target_db=-20, max_gain_db=300.0):
"""Normalize audio to be of the desired RMS value in decibels.

@ -1,13 +1,18 @@
PYTHON:= python3.8
.PHONY: all clean kenlm
.PHONY: all clean
all: virtualenv kenlm
all: virtualenv kenlm.done sox.done soxbindings.done
virtualenv:
test -d venv || virtualenv -p $(PYTHON) venv
touch venv/bin/activate
kenlm:
clean:
rm -fr venv
find -iname "*.pyc" -delete
rm -rf kenlm
kenlm.done:
# Ubuntu 16.04 透過 apt 會安裝 boost 1.58.0
# it seems that boost (1.54.0) requires higher version. After I switched to g++-5 it compiles normally.
apt install -y build-essential cmake libboost-system-dev libboost-thread-dev libboost-program-options-dev libboost-test-dev libeigen3-dev zlib1g-dev libbz2-dev liblzma-dev
@ -15,8 +20,16 @@ kenlm:
test -d kenlm || wget -O - https://kheafield.com/code/kenlm.tar.gz | tar xz
mkdir -p kenlm/build && cd kenlm/build && cmake .. && make -j4 && make install
cd kenlm && python setup.py install
touch kenlm.done
clean:
rm -fr venv
find -iname "*.pyc" -delete
sox.done:
apt install -y libvorbis-dev libmp3lame-dev libmad-ocaml-dev
test -d sox-14.4.2 || wget https://nchc.dl.sourceforge.net/project/sox/sox/14.4.2/sox-14.4.2.tar.gz
tar -xvzf sox-14.4.2.tar.gz -C .
cd sox-14.4.2 && ./configure --prefix=/usr/ && make -j4 && make install
touch sox.done
soxbindings.done:
test -d soxbindings || git clone https://github.com/pseeth/soxbindings.git
source venv/bin/activate; cd soxbindings && python3 setup.py install
touch soxbindings.done

Loading…
Cancel
Save