Skip to content

Commit

Permalink
Add Go API examples for adding punctuations to text. (k2-fsa#1478)
Browse files Browse the repository at this point in the history
  • Loading branch information
csukuangfj authored Oct 27, 2024
1 parent 7aa39cf commit cbc73a5
Show file tree
Hide file tree
Showing 9 changed files with 74 additions and 6 deletions.
7 changes: 7 additions & 0 deletions .github/workflows/test-go-package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,13 @@ jobs:
run: |
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
if: matrix.os != 'windows-latest'
shell: bash
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/test-go.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,12 @@ jobs:
name: ${{ matrix.os }}-libs
path: to-upload/

- name: Test adding punctuation
shell: bash
run: |
cd scripts/go/_internal/add-punctuation/
./run.sh
- name: Test non-streaming speaker diarization
shell: bash
run: |
Expand Down
3 changes: 3 additions & 0 deletions go-api-examples/add-punctuation/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module add-punctuation

go 1.12
31 changes: 31 additions & 0 deletions go-api-examples/add-punctuation/main.go
Original file line number Diff line number Diff line change
@@ -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 changes: 14 additions & 0 deletions go-api-examples/add-punctuation/run.sh
Original file line number Diff line number Diff line change
@@ -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 changes: 5 additions & 0 deletions scripts/go/_internal/add-punctuation/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module add-punctuation

go 1.12

replace github.com/k2-fsa/sherpa-onnx-go/sherpa_onnx => ../
1 change: 1 addition & 0 deletions scripts/go/_internal/add-punctuation/main.go
1 change: 1 addition & 0 deletions scripts/go/_internal/add-punctuation/run.sh
12 changes: 6 additions & 6 deletions scripts/go/sherpa_onnx.go
Original file line number Diff line number Diff line change
Expand Up @@ -1322,10 +1322,10 @@ func (sd *OfflineSpeakerDiarization) Process(samples []float32) []OfflineSpeaker
// For punctuation
// ============================================================
type OfflinePunctuationModelConfig struct {
Ct_transformer string
Num_threads C.int
Debug C.int // true to print debug information of the model
Provider string
CtTransformer string
NumThreads C.int
Debug C.int // true to print debug information of the model
Provider string
}

type OfflinePunctuationConfig struct {
Expand All @@ -1338,10 +1338,10 @@ type OfflinePunctuation struct {

func NewOfflinePunctuation(config *OfflinePunctuationConfig) *OfflinePunctuation {
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))

cfg.model.num_threads = config.Model.Num_threads
cfg.model.num_threads = config.Model.NumThreads
cfg.model.debug = config.Model.Debug
cfg.model.provider = C.CString(config.Model.Provider)
defer C.free(unsafe.Pointer(cfg.model.provider))
Expand Down

0 comments on commit cbc73a5

Please sign in to comment.