├── .gitattributes ├── test ├── noise.wav ├── voice │ ├── arctic_a0007.wav │ └── COPYING ├── trim_test.py ├── split_test.py └── vad_test.py ├── .gitignore ├── pyvad ├── __init__.py ├── vad.py └── effects.py ├── .github └── workflows │ ├── pypi.yaml │ ├── lint.yaml │ └── test.yaml ├── LICENCE ├── README.md ├── pyproject.toml └── example.ipynb /.gitattributes: -------------------------------------------------------------------------------- 1 | *.ipynb linguist-vendored 2 | *.html linguist-vendored -------------------------------------------------------------------------------- /test/noise.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/F-Tag/python-vad/HEAD/test/noise.wav -------------------------------------------------------------------------------- /test/voice/arctic_a0007.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/F-Tag/python-vad/HEAD/test/voice/arctic_a0007.wav -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | .python-version 3 | pyvad.egg-info/* 4 | *kernel*.json 5 | dist* 6 | build 7 | poetry.lock -------------------------------------------------------------------------------- /pyvad/__init__.py: -------------------------------------------------------------------------------- 1 | from pyvad import effects # noqa: F401 2 | from pyvad.effects import split, trim # noqa: F401 3 | from pyvad.vad import vad # noqa: F401 4 | -------------------------------------------------------------------------------- /.github/workflows/pypi.yaml: -------------------------------------------------------------------------------- 1 | name: Release to PyPI 2 | 3 | on: 4 | workflow_dispatch: 5 | release: 6 | types: [created] 7 | 8 | jobs: 9 | deploy: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v2 14 | with: 15 | fetch-depth: 0 16 | - name: Set up Python 17 | uses: actions/setup-python@v1 18 | with: 19 | python-version: "3.9" 20 | - name: pip install dependencies 21 | run: | 22 | python -m pip install --upgrade pip 23 | pip install poetry poetry-dynamic-versioning twine 24 | - name: PyPI Settings 25 | run: poetry config pypi-token.pypi ${{secrets.PYPI_TOKEN}} 26 | - name: Build and publish 27 | run: poetry publish --build 28 | -------------------------------------------------------------------------------- /test/trim_test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from itertools import product 5 | 6 | import numpy as np 7 | from librosa import load 8 | from pyvad import trim 9 | 10 | fs_vads = (8000, 16000, 32000, 48000) 11 | hops = (10, 20, 30) 12 | vad_modes = (0, 1, 2, 3) 13 | 14 | name = "voice/arctic_a0007.wav" 15 | data, fs = load(name, sr=None) 16 | 17 | for fs_vad, hop, vad_mode in product(fs_vads, hops, vad_modes): 18 | vact = trim(data, fs, fs_vad=fs_vad, hop_length=hop, vad_mode=vad_mode) 19 | assert vact[1] - vact[0] > 0, vact 20 | 21 | 22 | data = (np.random.rand(fs * 3) - 0.5) * 0.05 23 | for fs_vad, hop, vad_mode in product(fs_vads, hops, vad_modes): 24 | vact = trim(data, fs, fs_vad=fs_vad, hop_length=hop, vad_mode=vad_mode) 25 | assert vact[1] - vact[0] == 0, vact 26 | -------------------------------------------------------------------------------- /test/split_test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from itertools import product 5 | 6 | import numpy as np 7 | from librosa import load 8 | from pyvad import split 9 | 10 | fs_vads = (8000, 16000, 32000, 48000) 11 | hops = (10, 20, 30) 12 | vad_modes = (0, 1, 2, 3) 13 | 14 | name = "voice/arctic_a0007.wav" 15 | data, fs = load(name, sr=None) 16 | data = np.tile(data, 2) 17 | 18 | for fs_vad, hop, vad_mode in product(fs_vads, hops, vad_modes): 19 | vact = split(data, fs, fs_vad=fs_vad, hop_length=hop, vad_mode=vad_mode) 20 | assert vact.size >= 0, vact 21 | 22 | 23 | data = (np.random.rand(fs * 3) - 0.5) * 0.05 24 | for fs_vad, hop, vad_mode in product(fs_vads, hops, vad_modes): 25 | vact = split(data, fs, fs_vad=fs_vad, hop_length=hop, vad_mode=vad_mode) 26 | assert vact.size == 0, vact 27 | -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017: Fumiaki Taguchi 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 4 | associated documentation files (the "Software"), to deal in the Software without restriction, 5 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 6 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 7 | subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 12 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 13 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 14 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 15 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 16 | -------------------------------------------------------------------------------- /.github/workflows/lint.yaml: -------------------------------------------------------------------------------- 1 | name: pysen lint 2 | 3 | # トリガー 4 | on: 5 | workflow_dispatch: 6 | push: 7 | branches: 8 | - master 9 | pull_request: 10 | types: [opened, reopened, synchronize] 11 | branches: 12 | - master 13 | 14 | # 実行job 15 | jobs: 16 | lint: 17 | name: Run pysen lint 18 | runs-on: ubuntu-latest 19 | steps: 20 | # リポジトリのチェックアウト 21 | - name: Checkout 22 | uses: actions/checkout@v2 23 | # Python のセットアップ 24 | - name: Set up Python ${{ matrix.python-version }} 25 | uses: actions/setup-python@v1 26 | with: 27 | python-version: 3.8 28 | # Poetry をインストールする 29 | - name: Install Poetry 30 | run: | 31 | curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python 32 | echo "$HOME/.poetry/bin" >> $GITHUB_PATH 33 | # インストールした Poetry を使って必要な Python パッケージをインストール 34 | - name: Install Dependencies 35 | run: poetry install --no-interaction 36 | # lint を実行 37 | - name: pysen lint 38 | run: poetry run pysen run lint 39 | -------------------------------------------------------------------------------- /test/vad_test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from itertools import product 5 | 6 | from librosa import load 7 | from pyvad import vad 8 | 9 | fs_vads = (8000, 16000, 32000, 48000) 10 | hops = (10, 20, 30) 11 | vad_modes = (0, 1, 2, 3) 12 | fss = [16000, 22050] 13 | 14 | name = "voice/arctic_a0007.wav" 15 | 16 | for fs in fss: 17 | 18 | data, fs_r = load(name, sr=fs) 19 | for fs_vad, hop, vad_mode in product(fs_vads, hops, vad_modes): 20 | # print(fs, fs_vad, hop, vad_mode) 21 | vact = vad(data, fs_r, fs_vad=fs_vad, hop_length=hop, vad_mode=vad_mode) 22 | assert vact.sum() > data.size // 2, vact.sum() 23 | 24 | """ 25 | import matplotlib.pyplot as plt 26 | plt.plot(data) 27 | plt.plot(vact) 28 | plt.savefig(("voice_"+str(fs_r)+str(fs_vad)+str(hop)+str(vad_mode)+".png")) 29 | plt.close() 30 | """ 31 | 32 | """ 33 | data = (np.random.rand(fs*3)-0.5)*0.1 34 | for fs_vad, hop, vad_mode in product(fs_vads, hops, vad_modes): 35 | print(fs, fs_vad, hop, vad_mode) 36 | vact = vad(data, fs, fs_vad=fs_vad, hop_length=hop, vad_mode=vad_mode) 37 | # assert not vact.any(), vact.sum() 38 | 39 | 40 | import matplotlib.pyplot as plt 41 | plt.plot(data) 42 | plt.plot(vact) 43 | plt.savefig(("noise_"+str(fs)+str(fs_vad)+str(hop)+str(vad_mode)+".png")) 44 | plt.close() 45 | """ 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [py-webrtcvad](https://github.com/wiseman/py-webrtcvad) wrapper for trimming speech clips 2 | [![Build](https://github.com/F-Tag/python-vad/actions/workflows/test.yaml/badge.svg)](https://github.com/F-Tag/python-vad/actions/workflows/test.yaml) 3 | [![PyPI version](https://badge.fury.io/py/pyvad.svg)](https://badge.fury.io/py/pyvad) 4 | [![Python Versions](https://img.shields.io/pypi/pyversions/pyvad.svg)](https://pypi.org/project/pyvad/) 5 | 6 | ## Requirement 7 | [numpy](https://github.com/numpy/numpy), 8 | [librosa](https://github.com/librosa/librosa) and 9 | [py-webrtcvad](https://github.com/wiseman/py-webrtcvad). 10 | 11 | ## Installation 12 | via pip 13 | ```sh 14 | $ pip install pyvad 15 | ``` 16 | 17 | or 18 | 19 | from github repository 20 | ```sh 21 | $ pip install git+https://github.com/F-Tag/python-vad.git 22 | ``` 23 | 24 | ## Usage 25 | ```python 26 | from pyvad import vad 27 | vact = vad(speech_data, speech_data_fs) 28 | ``` 29 | 30 | 31 | ## Example 32 | Please see `example.ipynb` jupyter notebook. 33 | 34 | ## License 35 | MIT License (see `LICENSE` file). 36 | 37 | ## Announcement 38 | The version 0.1.0 update break backward compatibility. 39 | 40 | The changes are as follows: 41 | 1. The `hoplength` argument has been changed to `hop_length`. 42 | 2. The `trim` returns (start_index, end_index) (`return_sec` argument is abolished). 43 | 3. Slightly changed the method of preprocessing a waveform in `vad`. 44 | 4. End of support for python 2.x. 45 | 46 | You can see the new API in the `example.ipynb`. 47 | 48 | The previous version is 0.0.8. 49 | ```sh 50 | $ pip install pyvad==0.0.8 51 | ``` -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "pyvad" 3 | version = "0.0.0" 4 | description = "'py-webrtcvad wrapper for trimming speech clips'" 5 | authors = ["Fumiaki Taguchi"] 6 | license = "MIT" 7 | readme = "README.md" 8 | homepage = "https://github.com/F-Tag/python-vad" 9 | repository = "https://github.com/F-Tag/python-vad" 10 | classifiers=[ 11 | 'Development Status :: 4 - Beta', 12 | 'Programming Language :: Python :: 3', 13 | 'Programming Language :: Python :: 3.8', 14 | 'Programming Language :: Python :: 3.9', 15 | 'License :: OSI Approved :: MIT License', 16 | 'Operating System :: OS Independent', 17 | 'Topic :: Multimedia :: Sound/Audio', 18 | 'Topic :: Multimedia :: Sound/Audio :: Analysis', 19 | 'Topic :: Multimedia :: Sound/Audio :: Speech', 20 | 'Topic :: Scientific/Engineering :: Information Analysis', 21 | 'Topic :: Scientific/Engineering :: Human Machine Interfaces', 22 | ] 23 | 24 | [tool.poetry.dependencies] 25 | python = "^3.8" 26 | numpy = "^1.23.0" 27 | librosa = "^0.9.2" 28 | webrtcvad = "^2.0.10" 29 | 30 | [tool.poetry.dev-dependencies] 31 | pysen = {version = "0.10.2", extras = ["lint"]} 32 | pytest = "^7.1.2" 33 | pysptk = "^0.1.21" 34 | jupyterlab = "^3.4.3" 35 | 36 | [build-system] 37 | requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"] 38 | build-backend = "poetry.core.masonry.api" 39 | 40 | [tool.poetry-dynamic-versioning] 41 | enable = true 42 | style = "pep440" 43 | vcs = "git" 44 | 45 | [tool.pysen] 46 | version = "0.10" 47 | 48 | [tool.pysen.lint] 49 | enable_black = true 50 | enable_flake8 = true 51 | enable_isort = true 52 | enable_mypy = false 53 | mypy_preset = "strict" 54 | line_length = 88 55 | py_version = "py38" 56 | [[tool.pysen.lint.mypy_targets]] 57 | paths = ["."] 58 | -------------------------------------------------------------------------------- /.github/workflows/test.yaml: -------------------------------------------------------------------------------- 1 | name: pytest 2 | 3 | # トリガー 4 | on: 5 | workflow_dispatch: 6 | push: 7 | branches: 8 | - master 9 | pull_request: 10 | types: [opened, reopened, synchronize] 11 | branches: 12 | - master 13 | 14 | 15 | # 実行job 16 | jobs: 17 | pytest: 18 | name: Run tests with pytest 19 | # 実行環境として `ubuntu-latest` という名前のものを選ぶ 20 | runs-on: ubuntu-latest 21 | # 複数の Python のバージョンでテストするために `strategy.matrix` を設定する 22 | strategy: 23 | matrix: 24 | python-version: [3.8, 3.9] 25 | steps: 26 | # リポジトリをチェックアウトする 27 | - name: Checkout 28 | uses: actions/checkout@v2 29 | # Python のセットアップ 30 | # See: https://github.com/actions/setup-python 31 | - name: Set up Python ${{ matrix.python-version }} 32 | uses: actions/setup-python@v1 33 | with: 34 | python-version: ${{ matrix.python-version }} 35 | # # Poetry そのものをインストールする 36 | # - name: Install Poetry 37 | # run: | 38 | # curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python 39 | # # Poetry へのパスを通す 40 | # - name: Add path for Poetry 41 | # run: echo "$HOME/.poetry/bin" >> $GITHUB_PATH 42 | # # インストールした Poetry を使って必要な Python パッケージをインストールする 43 | # - name: Install Dependencies 44 | # run: poetry install --no-interaction 45 | # test を実行 46 | - name: apt install dependencies 47 | run: sudo apt install libsndfile1-dev clang-9 48 | - name: pip install package 49 | run: | 50 | pip install -U pip 51 | pip install . 52 | - name: Run Tests 53 | run: | 54 | cd test 55 | python vad_test.py 56 | python trim_test.py 57 | python split_test.py 58 | -------------------------------------------------------------------------------- /test/voice/COPYING: -------------------------------------------------------------------------------- 1 | 2 | This voice is free for use for any purpose (commercial or otherwise) 3 | subject to the pretty light restrictions detailed below. 4 | 5 | ############################################################################ 6 | ### ## 7 | ### Carnegie Mellon University ## 8 | ### Copyright (c) 2003 ## 9 | ### All Rights Reserved. ## 10 | ### ## 11 | ### Permission to use, copy, modify, and licence this software and its ## 12 | ### documentation for any purpose, is hereby granted without fee, ## 13 | ### subject to the following conditions: ## 14 | ### 1. The code must retain the above copyright notice, this list of ## 15 | ### conditions and the following disclaimer. ## 16 | ### 2. Any modifications must be clearly marked as such. ## 17 | ### 3. Original authors' names are not deleted. ## 18 | ### ## 19 | ### THE AUTHORS OF THIS WORK DISCLAIM ALL WARRANTIES WITH REGARD TO ## 20 | ### THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ## 21 | ### AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY ## 22 | ### SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ## 23 | ### WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ## 24 | ### AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ## 25 | ### ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ## 26 | ### THIS SOFTWARE. ## 27 | ### ## 28 | ############################################################################ 29 | ### ## 30 | ### See http://www.festvox.org/cmu_arctic/ for more details ## 31 | ### ## 32 | ############################################################################ 33 | 34 | -------------------------------------------------------------------------------- /pyvad/vad.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from warnings import warn 5 | 6 | import numpy as np 7 | import webrtcvad 8 | from librosa.core import resample 9 | from librosa.util import frame 10 | 11 | 12 | def vad(data, fs, fs_vad=16000, hop_length=30, vad_mode=0): 13 | """Voice activity detection. 14 | This was implementioned for easier use of py-webrtcvad. 15 | Parameters 16 | ---------- 17 | data : ndarray 18 | numpy array of mono (1 ch) speech data. 19 | 1-d or 2-d, if 2-d, shape must be (1, time_length) or (time_length, 1). 20 | if data type is int, -32768 < data < 32767. 21 | if data type is float, -1 < data < 1. 22 | fs : int 23 | Sampling frequency of data. 24 | fs_vad : int, optional 25 | Sampling frequency for webrtcvad. 26 | fs_vad must be 8000, 16000, 32000 or 48000. 27 | Default is 16000. 28 | hop_length : int, optional 29 | Step size[milli second]. 30 | hop_length must be 10, 20, or 30. 31 | Default is 0.1. 32 | vad_mode : int, optional 33 | set vad aggressiveness. 34 | As vad_mode increases, it becomes more aggressive. 35 | vad_mode must be 0, 1, 2 or 3. 36 | Default is 0. 37 | 38 | Returns 39 | ------- 40 | vact : ndarray 41 | voice activity. time length of vact is same as input data. 42 | If 0, it is unvoiced, 1 is voiced. 43 | """ 44 | 45 | # check argument 46 | if fs_vad not in [8000, 16000, 32000, 48000]: 47 | raise ValueError("fs_vad must be 8000, 16000, 32000 or 48000.") 48 | 49 | if hop_length not in [10, 20, 30]: 50 | raise ValueError("hop_length must be 10, 20, or 30.") 51 | 52 | if vad_mode not in [0, 1, 2, 3]: 53 | raise ValueError("vad_mode must be 0, 1, 2 or 3.") 54 | 55 | # check data 56 | if data.dtype.kind == "i": 57 | if data.max() > 2 ** 15 - 1 or data.min() < -(2 ** 15): 58 | raise ValueError( 59 | "When data.type is int, data must be -32768 < data < 32767." 60 | ) 61 | data = data.astype("f") / 2.0 ** 15 62 | 63 | elif data.dtype.kind == "f": 64 | if np.abs(data).max() > 1: 65 | raise ValueError( 66 | "When data.type is float, data must be -1.0 <= data <= 1.0." 67 | ) 68 | data = data.astype("f") 69 | 70 | else: 71 | raise ValueError("data.dtype must be int or float.") 72 | 73 | data = data.squeeze() 74 | if not data.ndim == 1: 75 | raise ValueError("data must be mono (1 ch).") 76 | 77 | # resampling 78 | if fs != fs_vad: 79 | resampled = resample(data, orig_sr=fs, target_sr=fs_vad) 80 | if np.abs(resampled).max() > 1.0: 81 | resampled *= 0.99 / np.abs(resampled).max() 82 | warn("Resampling causes data clipping. data was rescaled.") 83 | 84 | else: 85 | resampled = data 86 | 87 | resampled = (resampled * 2.0 ** 15).astype("int16") 88 | 89 | hop = fs_vad * hop_length // 1000 90 | framelen = resampled.size // hop + 1 91 | padlen = framelen * hop - resampled.size 92 | paded = np.lib.pad(resampled, (0, padlen), "constant", constant_values=0) 93 | framed = frame(paded, frame_length=hop, hop_length=hop).T 94 | 95 | vad = webrtcvad.Vad() 96 | vad.set_mode(vad_mode) 97 | valist = [vad.is_speech(tmp.tobytes(), fs_vad) for tmp in framed] 98 | 99 | # smoothing 100 | valist = np.asarray(valist).astype("float") 101 | valist = np.convolve(valist, np.ones(3) / 3, mode="same") > 0 102 | 103 | hop_origin = fs * hop_length // 1000 104 | va_framed = np.zeros([len(valist), hop_origin]) 105 | va_framed[valist] = 1 106 | 107 | return va_framed.reshape(-1)[: data.size] 108 | -------------------------------------------------------------------------------- /pyvad/effects.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | from .vad import vad 4 | 5 | 6 | def _get_edges(vact): 7 | 8 | edges = np.flatnonzero(np.diff(vact.astype(int))) 9 | edges = edges + 1 10 | 11 | if vact[0]: 12 | edges = np.hstack((0, edges)) 13 | 14 | if vact[-1]: 15 | edges = np.hstack((edges, vact.size)) 16 | 17 | edges = np.minimum(edges, vact.size).reshape(-1, 2) 18 | edges = edges[(edges[:, 1] - edges[:, 0]) > 0] 19 | 20 | return edges 21 | 22 | 23 | def _rms(arr): 24 | return np.sqrt((arr ** 2.0).mean()) 25 | 26 | 27 | def _drop_silence(waveform, edges, threshold_db): 28 | 29 | rms = [] 30 | for s, e in edges: 31 | rms.append(_rms(waveform[s:e])) 32 | 33 | rms = 20 * np.log10(rms) 34 | 35 | return edges[rms >= threshold_db] 36 | 37 | 38 | def _merge_short_silence(edges, max_samples): 39 | if len(edges) == 0: 40 | return edges 41 | 42 | ret = [edges[0].tolist()] 43 | for s, e in edges[1:]: 44 | if s - ret[-1][-1] < max_samples: 45 | ret[-1][-1] = e 46 | else: 47 | ret.append([s, e]) 48 | 49 | return np.asarray(ret) 50 | 51 | 52 | def trim( 53 | data, fs, fs_vad=16000, hop_length=30, vad_mode=0, threshold_db=-35.0, min_dur=0.2 54 | ): 55 | """ 56 | Trim leading and trailing silence from an speech waveform by using vad. 57 | Parameters 58 | ---------- 59 | data : ndarray 60 | numpy array of mono (1 ch) speech data. 61 | 1-d or 2-d, if 2-d, shape must be (1, time_length) or (time_length, 1). 62 | if data type is int, -32768 < data < 32767. 63 | if data type is float, -1 < data < 1. 64 | fs : int 65 | Sampling frequency of data. 66 | fs_vad : int, optional 67 | Sampling frequency for webrtcvad. 68 | fs_vad must be 8000, 16000, 32000 or 48000. 69 | Default is 16000. 70 | hop_length : int, optional 71 | Step size[milli second]. 72 | hop_length must be 10, 20, or 30. 73 | Default is 0.1. 74 | vad_mode : int, optional 75 | set vad aggressiveness. 76 | As vad_mode increases, it becomes more aggressive. 77 | vad_mode must be 0, 1, 2 or 3. 78 | Default is 0. 79 | threshold_db : float, optional 80 | The threshold level (in dB) below reference to consider as silence. 81 | Default is -35.0. 82 | min_dur : float, optional 83 | The minimum duration (in seconds) of each speech segment. 84 | Default is 0.5. 85 | 86 | Returns 87 | ------- 88 | (start_index, end_index) : int 89 | trimed waveform is data[start_index:end_index] 90 | If voice activity can't be detected, return 0, 0. 91 | """ 92 | 93 | vact = vad(data, fs, fs_vad, hop_length, vad_mode) 94 | 95 | edges = _get_edges(vact) 96 | edges = _merge_short_silence(edges, fs * 0.1) 97 | edges = edges[(edges[:, 1] - edges[:, 0]) > fs * min_dur] 98 | edges = _drop_silence(data, edges, threshold_db) 99 | 100 | edges = edges.ravel() 101 | 102 | if edges.any(): 103 | return edges[0], edges[-1] 104 | else: 105 | return 0, 0 106 | 107 | 108 | def split( 109 | data, fs, fs_vad=16000, hop_length=30, vad_mode=0, threshold_db=-35.0, min_dur=0.5 110 | ): 111 | """ 112 | Split a speech waveform into non-silent intervals by using vad. 113 | 114 | Parameters 115 | ---------- 116 | data : ndarray 117 | numpy array of mono (1 ch) speech data. 118 | 1-d or 2-d, if 2-d, shape must be (1, time_length) or (time_length, 1). 119 | if data type is int, -32768 < data < 32767. 120 | if data type is float, -1 < data < 1. 121 | fs : int 122 | Sampling frequency of data. 123 | fs_vad : int, optional 124 | Sampling frequency for webrtcvad. 125 | fs_vad must be 8000, 16000, 32000 or 48000. 126 | Default is 16000. 127 | hop_length : int, optional 128 | Step size[milli second]. 129 | hop_length must be 10, 20, or 30. 130 | Default is 0.1. 131 | vad_mode : int, optional 132 | Set vad aggressiveness. 133 | As vad_mode increases, it becomes more aggressive. 134 | vad_mode must be 0, 1, 2 or 3. 135 | Default is 0. 136 | threshold_db : float, optional 137 | The threshold level (in dB) below reference to consider as silence. 138 | Default is -35.0. 139 | min_dur : float, optional 140 | The minimum duration (in seconds) of each speech segment. 141 | Default is 0.5. 142 | 143 | Returns 144 | ------- 145 | edges : np.ndarray, shape=(m, 2) 146 | `edges[i] == (start_i, end_i)` are the start and end time 147 | (in samples) of non-silent interval `i`. 148 | """ 149 | 150 | vact = vad(data, fs, fs_vad, hop_length, vad_mode) 151 | 152 | edges = _get_edges(vact) 153 | edges = _merge_short_silence(edges, fs * 0.1) 154 | edges = edges[(edges[:, 1] - edges[:, 0]) > fs * min_dur] 155 | edges = _drop_silence(data, edges, threshold_db) 156 | 157 | return edges 158 | -------------------------------------------------------------------------------- /example.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Import modules" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 1, 13 | "metadata": {}, 14 | "outputs": [], 15 | "source": [ 16 | "from pyvad import vad, trim, split\n", 17 | "from librosa import load\n", 18 | "import matplotlib.pyplot as plt\n", 19 | "import numpy as np\n", 20 | "import IPython.display" 21 | ] 22 | }, 23 | { 24 | "cell_type": "markdown", 25 | "metadata": {}, 26 | "source": [ 27 | "# Load speech data " 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 2, 33 | "metadata": {}, 34 | "outputs": [ 35 | { 36 | "data": { 37 | "image/png": "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\n", 38 | "text/plain": [ 39 | "
" 40 | ] 41 | }, 42 | "metadata": { 43 | "needs_background": "light" 44 | }, 45 | "output_type": "display_data" 46 | } 47 | ], 48 | "source": [ 49 | "name = \"test/voice/arctic_a0007.wav\"\n", 50 | "data, fs = load(name)\n", 51 | "data = np.hstack((data, -data))\n", 52 | "data *=0.95 / np.abs(data).max()\n", 53 | "time = np.linspace(0, len(data)/fs, len(data)) # time axis\n", 54 | "plt.plot(time, data)\n", 55 | "plt.show()" 56 | ] 57 | }, 58 | { 59 | "cell_type": "markdown", 60 | "metadata": {}, 61 | "source": [ 62 | "# Do VAD (int)" 63 | ] 64 | }, 65 | { 66 | "cell_type": "code", 67 | "execution_count": 3, 68 | "metadata": {}, 69 | "outputs": [ 70 | { 71 | "name": "stdout", 72 | "output_type": "stream", 73 | "text": [ 74 | "CPU times: user 166 ms, sys: 3.9 ms, total: 169 ms\n", 75 | "Wall time: 176 ms\n" 76 | ] 77 | } 78 | ], 79 | "source": [ 80 | "%time vact = vad(data, fs, fs_vad = 16000, hop_length = 30, vad_mode=3)" 81 | ] 82 | }, 83 | { 84 | "cell_type": "markdown", 85 | "metadata": {}, 86 | "source": [ 87 | "# Plot result" 88 | ] 89 | }, 90 | { 91 | "cell_type": "code", 92 | "execution_count": 4, 93 | "metadata": {}, 94 | "outputs": [ 95 | { 96 | "data": { 97 | "image/png": "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\n", 98 | "text/plain": [ 99 | "
" 100 | ] 101 | }, 102 | "metadata": { 103 | "needs_background": "light" 104 | }, 105 | "output_type": "display_data" 106 | } 107 | ], 108 | "source": [ 109 | "fig, ax1 = plt.subplots()\n", 110 | "\n", 111 | "ax1.plot(time, data, label='speech waveform')\n", 112 | "ax1.set_xlabel(\"TIME [s]\")\n", 113 | "\n", 114 | "ax2=ax1.twinx()\n", 115 | "ax2.plot(time, vact, color=\"r\", label = 'vad')\n", 116 | "plt.yticks([1] ,['voice'])\n", 117 | "ax2.set_ylim([-0.01, 1.01])\n", 118 | "\n", 119 | "plt.legend()\n", 120 | "plt.show()" 121 | ] 122 | }, 123 | { 124 | "cell_type": "markdown", 125 | "metadata": {}, 126 | "source": [ 127 | "# trim" 128 | ] 129 | }, 130 | { 131 | "cell_type": "code", 132 | "execution_count": 5, 133 | "metadata": {}, 134 | "outputs": [ 135 | { 136 | "name": "stdout", 137 | "output_type": "stream", 138 | "text": [ 139 | "CPU times: user 173 ms, sys: 6.07 ms, total: 179 ms\n", 140 | "Wall time: 194 ms\n" 141 | ] 142 | } 143 | ], 144 | "source": [ 145 | "%time edges = trim(data, fs, fs_vad = 16000, hop_length = 30, vad_mode=3)" 146 | ] 147 | }, 148 | { 149 | "cell_type": "markdown", 150 | "metadata": {}, 151 | "source": [ 152 | "# Plot result" 153 | ] 154 | }, 155 | { 156 | "cell_type": "code", 157 | "execution_count": 6, 158 | "metadata": {}, 159 | "outputs": [ 160 | { 161 | "data": { 162 | "image/png": "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\n", 163 | "text/plain": [ 164 | "
" 165 | ] 166 | }, 167 | "metadata": { 168 | "needs_background": "light" 169 | }, 170 | "output_type": "display_data" 171 | } 172 | ], 173 | "source": [ 174 | "trimed = data[edges[0]:edges[1]]\n", 175 | "time = np.linspace(0, len(trimed)/fs, len(trimed)) # time axis\n", 176 | "fig, ax1 = plt.subplots()\n", 177 | "\n", 178 | "ax1.plot(time, trimed, label='speech waveform')\n", 179 | "ax1.set_xlabel(\"TIME [s]\")\n", 180 | "\n", 181 | "plt.show()" 182 | ] 183 | }, 184 | { 185 | "cell_type": "markdown", 186 | "metadata": {}, 187 | "source": [ 188 | "# split" 189 | ] 190 | }, 191 | { 192 | "cell_type": "code", 193 | "execution_count": 7, 194 | "metadata": {}, 195 | "outputs": [ 196 | { 197 | "name": "stdout", 198 | "output_type": "stream", 199 | "text": [ 200 | "CPU times: user 171 ms, sys: 5.65 ms, total: 177 ms\n", 201 | "Wall time: 208 ms\n" 202 | ] 203 | } 204 | ], 205 | "source": [ 206 | "%time edges = split(data, fs, fs_vad = 8000, hop_length = 10, vad_mode=3)" 207 | ] 208 | }, 209 | { 210 | "cell_type": "markdown", 211 | "metadata": {}, 212 | "source": [ 213 | "# Plot result" 214 | ] 215 | }, 216 | { 217 | "cell_type": "code", 218 | "execution_count": 8, 219 | "metadata": {}, 220 | "outputs": [ 221 | { 222 | "data": { 223 | "image/png": "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\n", 224 | "text/plain": [ 225 | "
" 226 | ] 227 | }, 228 | "metadata": { 229 | "needs_background": "light" 230 | }, 231 | "output_type": "display_data" 232 | }, 233 | { 234 | "data": { 235 | "image/png": "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\n", 236 | "text/plain": [ 237 | "
" 238 | ] 239 | }, 240 | "metadata": { 241 | "needs_background": "light" 242 | }, 243 | "output_type": "display_data" 244 | } 245 | ], 246 | "source": [ 247 | "for i, edge in enumerate(edges):\n", 248 | " seg = data[edge[0]:edge[1]]\n", 249 | " time = np.linspace(0, len(seg)/fs, len(seg)) # time axis\n", 250 | " \n", 251 | " fig, ax1 = plt.subplots()\n", 252 | "\n", 253 | " ax1.plot(time, seg, label='speech waveform')\n", 254 | " ax1.set_xlabel(\"TIME [s]\")\n", 255 | "\n", 256 | " plt.show()" 257 | ] 258 | } 259 | ], 260 | "metadata": { 261 | "kernelspec": { 262 | "display_name": "Python 3", 263 | "language": "python", 264 | "name": "python3" 265 | }, 266 | "language_info": { 267 | "codemirror_mode": { 268 | "name": "ipython", 269 | "version": 3 270 | }, 271 | "file_extension": ".py", 272 | "mimetype": "text/x-python", 273 | "name": "python", 274 | "nbconvert_exporter": "python", 275 | "pygments_lexer": "ipython3", 276 | "version": "3.7.9" 277 | } 278 | }, 279 | "nbformat": 4, 280 | "nbformat_minor": 4 281 | } 282 | --------------------------------------------------------------------------------