Add Go API examples for adding punctuations to text. (#1478)
This commit is contained in:
7
.github/workflows/test-go-package.yaml
vendored
7
.github/workflows/test-go-package.yaml
vendored
@@ -68,6 +68,13 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
gcc --version
|
gcc --version
|
||||||
|
|
||||||
|
- name: Test adding punctuation
|
||||||
|
if: matrix.os != 'windows-latest'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd go-api-examples/add-punctuation/
|
||||||
|
./run.sh
|
||||||
|
|
||||||
- name: Test non-streaming speaker diarization
|
- name: Test non-streaming speaker diarization
|
||||||
if: matrix.os != 'windows-latest'
|
if: matrix.os != 'windows-latest'
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
6
.github/workflows/test-go.yaml
vendored
6
.github/workflows/test-go.yaml
vendored
@@ -134,6 +134,12 @@ jobs:
|
|||||||
name: ${{ matrix.os }}-libs
|
name: ${{ matrix.os }}-libs
|
||||||
path: to-upload/
|
path: to-upload/
|
||||||
|
|
||||||
|
- name: Test adding punctuation
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd scripts/go/_internal/add-punctuation/
|
||||||
|
./run.sh
|
||||||
|
|
||||||
- name: Test non-streaming speaker diarization
|
- name: Test non-streaming speaker diarization
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
3
go-api-examples/add-punctuation/go.mod
Normal file
3
go-api-examples/add-punctuation/go.mod
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
module add-punctuation
|
||||||
|
|
||||||
|
go 1.12
|
||||||
31
go-api-examples/add-punctuation/main.go
Normal file
31
go-api-examples/add-punctuation/main.go
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
sherpa "github.com/k2-fsa/sherpa-onnx-go/sherpa_onnx"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
log.SetFlags(log.LstdFlags | log.Lmicroseconds)
|
||||||
|
|
||||||
|
config := sherpa.OfflinePunctuationConfig{}
|
||||||
|
config.Model.CtTransformer = "./sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12/model.onnx"
|
||||||
|
config.Model.NumThreads = 1
|
||||||
|
config.Model.Provider = "cpu"
|
||||||
|
|
||||||
|
punct := sherpa.NewOfflinePunctuation(&config)
|
||||||
|
defer sherpa.DeleteOfflinePunc(punct)
|
||||||
|
|
||||||
|
textArray := []string{
|
||||||
|
"这是一个测试你好吗How are you我很好thank you are you ok谢谢你",
|
||||||
|
"我们都是木头人不会说话不会动",
|
||||||
|
"The African blogosphere is rapidly expanding bringing more voices online in the form of commentaries opinions analyses rants and poetry",
|
||||||
|
}
|
||||||
|
log.Println("----------")
|
||||||
|
for _, text := range textArray {
|
||||||
|
newText := punct.AddPunct(text)
|
||||||
|
log.Printf("Input text: %v", text)
|
||||||
|
log.Printf("Output text: %v", newText)
|
||||||
|
log.Println("----------")
|
||||||
|
}
|
||||||
|
}
|
||||||
14
go-api-examples/add-punctuation/run.sh
Executable file
14
go-api-examples/add-punctuation/run.sh
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
if [ ! -d ./sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12 ]; then
|
||||||
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/punctuation-models/sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12.tar.bz2
|
||||||
|
tar xvf sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12.tar.bz2
|
||||||
|
rm sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12.tar.bz2
|
||||||
|
fi
|
||||||
|
|
||||||
|
go mod tidy
|
||||||
|
go build
|
||||||
|
|
||||||
|
./add-punctuation
|
||||||
5
scripts/go/_internal/add-punctuation/go.mod
Normal file
5
scripts/go/_internal/add-punctuation/go.mod
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
module add-punctuation
|
||||||
|
|
||||||
|
go 1.12
|
||||||
|
|
||||||
|
replace github.com/k2-fsa/sherpa-onnx-go/sherpa_onnx => ../
|
||||||
1
scripts/go/_internal/add-punctuation/main.go
Symbolic link
1
scripts/go/_internal/add-punctuation/main.go
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../../go-api-examples/add-punctuation/main.go
|
||||||
1
scripts/go/_internal/add-punctuation/run.sh
Symbolic link
1
scripts/go/_internal/add-punctuation/run.sh
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../../go-api-examples/add-punctuation/run.sh
|
||||||
@@ -1322,8 +1322,8 @@ func (sd *OfflineSpeakerDiarization) Process(samples []float32) []OfflineSpeaker
|
|||||||
// For punctuation
|
// For punctuation
|
||||||
// ============================================================
|
// ============================================================
|
||||||
type OfflinePunctuationModelConfig struct {
|
type OfflinePunctuationModelConfig struct {
|
||||||
Ct_transformer string
|
CtTransformer string
|
||||||
Num_threads C.int
|
NumThreads C.int
|
||||||
Debug C.int // true to print debug information of the model
|
Debug C.int // true to print debug information of the model
|
||||||
Provider string
|
Provider string
|
||||||
}
|
}
|
||||||
@@ -1338,10 +1338,10 @@ type OfflinePunctuation struct {
|
|||||||
|
|
||||||
func NewOfflinePunctuation(config *OfflinePunctuationConfig) *OfflinePunctuation {
|
func NewOfflinePunctuation(config *OfflinePunctuationConfig) *OfflinePunctuation {
|
||||||
cfg := C.struct_SherpaOnnxOfflinePunctuationConfig{}
|
cfg := C.struct_SherpaOnnxOfflinePunctuationConfig{}
|
||||||
cfg.model.ct_transformer = C.CString(config.Model.Ct_transformer)
|
cfg.model.ct_transformer = C.CString(config.Model.CtTransformer)
|
||||||
defer C.free(unsafe.Pointer(cfg.model.ct_transformer))
|
defer C.free(unsafe.Pointer(cfg.model.ct_transformer))
|
||||||
|
|
||||||
cfg.model.num_threads = config.Model.Num_threads
|
cfg.model.num_threads = config.Model.NumThreads
|
||||||
cfg.model.debug = config.Model.Debug
|
cfg.model.debug = config.Model.Debug
|
||||||
cfg.model.provider = C.CString(config.Model.Provider)
|
cfg.model.provider = C.CString(config.Model.Provider)
|
||||||
defer C.free(unsafe.Pointer(cfg.model.provider))
|
defer C.free(unsafe.Pointer(cfg.model.provider))
|
||||||
|
|||||||
Reference in New Issue
Block a user