Skip to content

silero的分割函数中最后一帧有可能出现分割过大导致问题 #77

@cerberspace

Description

@cerberspace
        // last segment speech
        if (current_speech_start != 0 && current_speech_end != 0 && pcmf32.size() - current_speech_start > min_speech_samples){
            speech_segment.clear();
            speech_segment.assign(pcmf32.begin() + current_speech_start, pcmf32.begin() + pcmf32.size());
            printf("[%.2f-%.2f] ", current_speech_start / (sample_rate * 1.0), current_speech_end / (sample_rate * 1.0));
            if (sense_voice_full_parallel(ctx, wparams, speech_segment, speech_segment.size(), params.n_processors) != 0) {
                fprintf(stderr, "%s: failed to process audio\n", argv[0]);
                return 10;
            }
            sense_voice_print_output(ctx, true, params.use_itn, false);
        }

目前的条件是current_speech_start!= 0 current_speech_end!=0 有可能出现 pcmf32.size() - current_speech_start >max_speech_samples的情况,这个分片过大的话,会导致在sense_voice_full_parallel过程中持续运行时长过长,内存异常增长。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions