audio - Julia 中的声音激活录音

标签 audio triggers julia signal-processing

我正在使用 Julia 录制音频,并希望能够在音频信号超过特定音量后触发 5 秒的录制。到目前为止,这是我的记录脚本:

using PortAudio, SampledSignals, LibSndFile, FileIO, Dates

stream = PortAudioStream("HDA Intel PCH: ALC285 Analog (hw:0,0)")

buf = read(stream, 5s)

close(stream)

save(string("recording_", Dates.format(now(), "yyyymmdd_HHMMSS"), ".wav"), buf, Fs = 48000)

我是 Julia 和一般信号处理的新手。我如何才能告诉它仅在音频超过指定音量阈值时才开始录制?

最佳答案

您需要测试您捕获的声音的平均振幅并据此采取行动。如果声音足够大就保存,否则冲洗并重复。

using PortAudio, SampledSignals, LibSndFile, FileIO

const hassound = 10   # choose this to fit

suprathreshold(buf, thresh = hassound) = norm(buf) / sqrt(length(buf)) > thresh  # power over threshold
    
stream = PortAudioStream("HDA Intel PCH: ALC285 Analog (hw:0,0)")

while true
    buf = read(stream, 5s)
    close(stream)
    if suprathreshold(buf)
        save("recording.wav", buf, Fs = 48000) # should really append here maybe???
    end
end
    

关于audio - Julia 中的声音激活录音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68381672/

相关文章:

ios - Xcode:如何将 MP4 文件转换为音频文件

iphone - iPhone-声音无法与AudioServicesPlaySystemSound或AVAudioPlayer一起播放

使用 Julia 进行数据库抽象

iOS 8.x Swift MPRemoteCommandCenter - 禁用音频播放控件

php - 触发器还是 PHP 脚本?

javascript - 在将数据插入数据库之前验证数据

.net - WPF - 如何结合DataTrigger和触发器?

julia 生成带有符号的表达式

julia - DynamicalSystems 初始条件不工作的轨道图

javascript - 如何在javascript中随机播放歌曲? (例如:从第5秒开始)