未验证 提交 d0635c65 编写于 作者: H Hui Zhang 提交者: GitHub

using soxbinddings (#619)

上级 d777edc6
...@@ -9,6 +9,9 @@ ...@@ -9,6 +9,9 @@
*.tar.gz *.tar.gz
.ipynb_checkpoints .ipynb_checkpoints
*.npz *.npz
*.done
tools/venv tools/venv
tools/kenlm tools/kenlm
tools/sox-14.4.2
tools/soxbindings
...@@ -21,6 +21,7 @@ import struct ...@@ -21,6 +21,7 @@ import struct
import numpy as np import numpy as np
import resampy import resampy
import soundfile import soundfile
import soxbindings as sox
from scipy import signal from scipy import signal
...@@ -339,18 +340,18 @@ class AudioSegment(object): ...@@ -339,18 +340,18 @@ class AudioSegment(object):
raise ValueError("speed_rate should be greater than zero.") raise ValueError("speed_rate should be greater than zero.")
# numpy # numpy
old_length = self._samples.shape[0] # old_length = self._samples.shape[0]
new_length = int(old_length / speed_rate) # new_length = int(old_length / speed_rate)
old_indices = np.arange(old_length) # old_indices = np.arange(old_length)
new_indices = np.linspace(start=0, stop=old_length, num=new_length) # new_indices = np.linspace(start=0, stop=old_length, num=new_length)
self._samples = np.interp(new_indices, old_indices, self._samples) # self._samples = np.interp(new_indices, old_indices, self._samples)
# sox, slow # sox, slow
# tfm = sox.Transformer() tfm = sox.Transformer()
# tfm.set_globals(multithread=False) tfm.set_globals(multithread=False)
# tfm.speed(speed_rate) tfm.speed(speed_rate)
# self._samples = tfm.build_array( self._samples = tfm.build_array(
# input_array=self._samples, sample_rate_in=self._sample_rate).copy() input_array=self._samples, sample_rate_in=self._sample_rate).copy()
def normalize(self, target_db=-20, max_gain_db=300.0): def normalize(self, target_db=-20, max_gain_db=300.0):
"""Normalize audio to be of the desired RMS value in decibels. """Normalize audio to be of the desired RMS value in decibels.
......
PYTHON:= python3.8 PYTHON:= python3.8
.PHONY: all clean kenlm .PHONY: all clean
all: virtualenv kenlm all: virtualenv kenlm.done sox.done soxbindings.done
virtualenv: virtualenv:
test -d venv || virtualenv -p $(PYTHON) venv test -d venv || virtualenv -p $(PYTHON) venv
touch venv/bin/activate 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 # 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. # 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 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: ...@@ -15,8 +20,16 @@ kenlm:
test -d kenlm || wget -O - https://kheafield.com/code/kenlm.tar.gz | tar xz 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 mkdir -p kenlm/build && cd kenlm/build && cmake .. && make -j4 && make install
cd kenlm && python setup.py install cd kenlm && python setup.py install
touch kenlm.done
clean: sox.done:
rm -fr venv apt install -y libvorbis-dev libmp3lame-dev libmad-ocaml-dev
find -iname "*.pyc" -delete 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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册