Я пытаюсь автоматически разбивать аудиофайлы на 5-минутные сегменты, не разбивая слова и разбивая на немые части. Знаете ли вы какие-либо способы сделать это?
Есть ли способ, которым я могу объединить эти 2 сценария, а также сделать продолжительность разделения менее (около) 5 минут?
ffmpeg -i filename -af silencedetect=noise=-30dB:d=0.5 -f null - 2
и
ffmpeg -i test.mp3 -ss 00:00:20 -to 00:00:40 -c copy -y temp.mp3
Я пытался использовать их в своем Go коде, как это, но похоже, что это не правильный путь.
package main
import (
"fmt"
"os/exec"
"os"
"io/ioutil"
"log"
)
func main() {
filename := "test.wav"
args := []string{"-i", filename, "-af", "silentdetect=noise=-30dB:d=0.5","-f", "null", "-","2>", "output.txt"}
cmd := exec.Command("ffmpeg", args...)
errcmd := cmd.Run()
if errcmd != nil {
fmt.Println(errcmd)
fmt.Println("problem detecting silence")
} else {
fmt.Println("silence detected")
}
file, err := os.Open("output.txt")
if err != nil {
fmt.Println(err)
}
body, readErr := ioutil.ReadAll(file)
if readErr != nil {
log.Fatal(readErr)
}
//somehow read silent start time and end time from the file and split
}