mirror of
https://github.com/snakers4/silero-vad.git
synced 2026-02-05 01:49:22 +08:00
Add haskell example
This commit is contained in:
13
examples/haskell/README.md
Normal file
13
examples/haskell/README.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Haskell example
|
||||||
|
|
||||||
|
To run the example, make sure you put an ``example.wav`` in this directory, and then run the following:
|
||||||
|
```bash
|
||||||
|
stack run
|
||||||
|
```
|
||||||
|
|
||||||
|
The ``example.wav`` file must have the following requirements:
|
||||||
|
- Must be 16khz sample rate.
|
||||||
|
- Must be mono channel.
|
||||||
|
- Must be 16-bit audio.
|
||||||
|
|
||||||
|
This uses the [silero-vad](https://hackage.haskell.org/package/silero-vad) package, a haskell implementation based on the C# example.
|
||||||
22
examples/haskell/app/Main.hs
Normal file
22
examples/haskell/app/Main.hs
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
module Main (main) where
|
||||||
|
|
||||||
|
import qualified Data.Vector.Storable as Vector
|
||||||
|
import Data.WAVE
|
||||||
|
import Data.Function
|
||||||
|
import Silero
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main =
|
||||||
|
withModel $ \model -> do
|
||||||
|
wav <- getWAVEFile "example.wav"
|
||||||
|
let samples =
|
||||||
|
concat (waveSamples wav)
|
||||||
|
& Vector.fromList
|
||||||
|
& Vector.map (realToFrac . sampleToDouble)
|
||||||
|
let vad =
|
||||||
|
(defaultVad model)
|
||||||
|
{ startThreshold = 0.5
|
||||||
|
, endThreshold = 0.35
|
||||||
|
}
|
||||||
|
segments <- detectSegments vad samples
|
||||||
|
print segments
|
||||||
23
examples/haskell/example.cabal
Normal file
23
examples/haskell/example.cabal
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
cabal-version: 1.12
|
||||||
|
|
||||||
|
-- This file has been generated from package.yaml by hpack version 0.37.0.
|
||||||
|
--
|
||||||
|
-- see: https://github.com/sol/hpack
|
||||||
|
|
||||||
|
name: example
|
||||||
|
version: 0.1.0.0
|
||||||
|
build-type: Simple
|
||||||
|
|
||||||
|
executable example-exe
|
||||||
|
main-is: Main.hs
|
||||||
|
other-modules:
|
||||||
|
Paths_example
|
||||||
|
hs-source-dirs:
|
||||||
|
app
|
||||||
|
ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
|
||||||
|
build-depends:
|
||||||
|
WAVE
|
||||||
|
, base >=4.7 && <5
|
||||||
|
, silero-vad
|
||||||
|
, vector
|
||||||
|
default-language: Haskell2010
|
||||||
28
examples/haskell/package.yaml
Normal file
28
examples/haskell/package.yaml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
name: example
|
||||||
|
version: 0.1.0.0
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
- base >= 4.7 && < 5
|
||||||
|
- silero-vad
|
||||||
|
- WAVE
|
||||||
|
- vector
|
||||||
|
|
||||||
|
ghc-options:
|
||||||
|
- -Wall
|
||||||
|
- -Wcompat
|
||||||
|
- -Widentities
|
||||||
|
- -Wincomplete-record-updates
|
||||||
|
- -Wincomplete-uni-patterns
|
||||||
|
- -Wmissing-export-lists
|
||||||
|
- -Wmissing-home-modules
|
||||||
|
- -Wpartial-fields
|
||||||
|
- -Wredundant-constraints
|
||||||
|
|
||||||
|
executables:
|
||||||
|
example-exe:
|
||||||
|
main: Main.hs
|
||||||
|
source-dirs: app
|
||||||
|
ghc-options:
|
||||||
|
- -threaded
|
||||||
|
- -rtsopts
|
||||||
|
- -with-rtsopts=-N
|
||||||
11
examples/haskell/stack.yaml
Normal file
11
examples/haskell/stack.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
snapshot:
|
||||||
|
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/26.yaml
|
||||||
|
|
||||||
|
packages:
|
||||||
|
- .
|
||||||
|
|
||||||
|
extra-deps:
|
||||||
|
- silero-vad-0.1.0.4@sha256:2bff95be978a2782915b250edc795760d4cf76838e37bb7d4a965dc32566eb0f,5476
|
||||||
|
- WAVE-0.1.6@sha256:f744ff68f5e3a0d1f84fab373ea35970659085d213aef20860357512d0458c5c,1016
|
||||||
|
- derive-storable-0.3.1.0@sha256:bd1c51c155a00e2be18325d553d6764dd678904a85647d6ba952af998e70aa59,2313
|
||||||
|
- vector-0.13.2.0@sha256:98f5cb3080a3487527476e3c272dcadaba1376539f2aa0646f2f19b3af6b2f67,8481
|
||||||
41
examples/haskell/stack.yaml.lock
Normal file
41
examples/haskell/stack.yaml.lock
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# This file was autogenerated by Stack.
|
||||||
|
# You should not edit this file by hand.
|
||||||
|
# For more information, please see the documentation at:
|
||||||
|
# https://docs.haskellstack.org/en/stable/lock_files
|
||||||
|
|
||||||
|
packages:
|
||||||
|
- completed:
|
||||||
|
hackage: silero-vad-0.1.0.4@sha256:2bff95be978a2782915b250edc795760d4cf76838e37bb7d4a965dc32566eb0f,5476
|
||||||
|
pantry-tree:
|
||||||
|
sha256: a62e813f978d32c87769796fded981d25fcf2875bb2afdf60ed6279f931ccd7f
|
||||||
|
size: 1391
|
||||||
|
original:
|
||||||
|
hackage: silero-vad-0.1.0.4@sha256:2bff95be978a2782915b250edc795760d4cf76838e37bb7d4a965dc32566eb0f,5476
|
||||||
|
- completed:
|
||||||
|
hackage: WAVE-0.1.6@sha256:f744ff68f5e3a0d1f84fab373ea35970659085d213aef20860357512d0458c5c,1016
|
||||||
|
pantry-tree:
|
||||||
|
sha256: ee5ccd70fa7fe6ffc360ebd762b2e3f44ae10406aa27f3842d55b8cbd1a19498
|
||||||
|
size: 405
|
||||||
|
original:
|
||||||
|
hackage: WAVE-0.1.6@sha256:f744ff68f5e3a0d1f84fab373ea35970659085d213aef20860357512d0458c5c,1016
|
||||||
|
- completed:
|
||||||
|
hackage: derive-storable-0.3.1.0@sha256:bd1c51c155a00e2be18325d553d6764dd678904a85647d6ba952af998e70aa59,2313
|
||||||
|
pantry-tree:
|
||||||
|
sha256: 48e35a72d1bb593173890616c8d7efd636a650a306a50bb3e1513e679939d27e
|
||||||
|
size: 902
|
||||||
|
original:
|
||||||
|
hackage: derive-storable-0.3.1.0@sha256:bd1c51c155a00e2be18325d553d6764dd678904a85647d6ba952af998e70aa59,2313
|
||||||
|
- completed:
|
||||||
|
hackage: vector-0.13.2.0@sha256:98f5cb3080a3487527476e3c272dcadaba1376539f2aa0646f2f19b3af6b2f67,8481
|
||||||
|
pantry-tree:
|
||||||
|
sha256: 2176fd677a02a4c47337f7dca5aeca2745dbb821a6ea5c7099b3a991ecd7f4f0
|
||||||
|
size: 4478
|
||||||
|
original:
|
||||||
|
hackage: vector-0.13.2.0@sha256:98f5cb3080a3487527476e3c272dcadaba1376539f2aa0646f2f19b3af6b2f67,8481
|
||||||
|
snapshots:
|
||||||
|
- completed:
|
||||||
|
sha256: 5a59b2a405b3aba3c00188453be172b85893cab8ebc352b1ef58b0eae5d248a2
|
||||||
|
size: 650475
|
||||||
|
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/26.yaml
|
||||||
|
original:
|
||||||
|
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/26.yaml
|
||||||
Reference in New Issue
Block a user