Разделить аудио на сегменты по умолчанию с помощью ffmpeg - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь автоматически разбивать аудиофайлы на 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

}
...