提取视频中的人物声音,这么简单别说你不会

本文介绍了如何通过智优影、剪映、Au和Audacity等工具从视频中提取旁白声音,包括在线处理工具和专业的音频编辑软件,帮助用户轻松获取视频中的特定音频片段。

当我们在刷视频的时候,有时候听到一个能触动自己的旁白,比如“法外狂徒张三”罗翔老师说的话,这个时候我们就想把这段话保存下来,配上自己的视频去抖音发布,但是又不怎么只保存这段旁白语音

相信有很多朋友会遇到这样的问题,不知道怎么弄,下面小编给大家推荐一些方法帮助大家轻松地把视频中的声音提取出来

方法一:使用“智优影”

这是一个强大的在线音视频处理工具,在线打开网站,选择【视频人声分离】功能,把视频文件添加进去,添加完之后选择分离人物声音,再点击【提交修复】按键,把视频中的人物声音提取出来,就能够得到单独的人物声音了。

方法二:使用剪映

首先打开软件,点击首页的“+ 开始创作”,在手机相册里选择一个视频文件后进行添加,会自动跳转到具体操作页面。

接着点击“开启原声”按钮进行视频原声关闭,然后找到页面下方“音频”功能中的“提取音乐”选项

在跳转页面进行原视频文件导入,默认“仅导入视频的声音”,点击即可在视频文件下方看到“提取音乐”一栏,点击“导出”即完成背景音乐和人声分离。

方法三:使用Au软件

Au由Adobe推出的一款多功能音频编辑软件,从事与音乐或音频职业相关的朋友应该经常会经常使用到它。

我们需要先把视频转换成音频格式,接着按Ctrl+A选中音频,在【效果】中找到【立体声声像】中的【提取中置声道】,在预设中删除人声,就能得到单独的背景音乐。

方法四:Audacity

这是一个开源音频编辑工具,支持Linux、MacOS以及Windows等多种平台的快速多轨音频编辑录制工具,提供编辑、混音功能并提供预置效果、插件和无限次反悔操作。

### 使用Python从视频中移除特定人物声音 为了实现这一目标,可以采用音频处理技术分离并去除指定的人。通常情况下,这涉及到几个步骤:提取音频轨道、分析音频特征以定位目标声音、应用滤波器或其他方法来减弱或删除该部分音轨,最后再将修改后的音频重新嵌入原始视频文件。 #### 提取音频流 首先需要利用`moviepy`这样的媒体处理库读视频并将其中的音频数据导出为单独的文件以便进一步操作[^1]: ```python from moviepy.editor import VideoFileClip video_clip = VideoFileClip("input_video.mp4") audio_clip = video_clip.audio audio_clip.write_audiofile("extracted_audio.wav") ``` #### 纹识别与分割 接着要通过语音活动检测(VAD)算法找出讲话者的片段位置,并借助深度学习模型如Spleeter (由Deezer开源),它能够有效地把音乐和人区分开来;对于更复杂的场景,则可能需要用到Speaker Diarization技术——即说话者日志化过程,用于区分不同发言个体的身份信息[^2]: ```bash pip install pyannote.audio spleeter ``` ```python import soundfile as sf from pyannote.audio.pipelines.speaker_verification import PretrainedSpeakerEmbeddingPipeline pipeline = PretrainedSpeakerEmbeddingPipeline() # 加载待处理音频文件 data, samplerate = sf.read('extracted_audio.wav') # 获某位具体讲者的声音样本作为参照物 target_speaker_embedding = pipeline({'waveform': target_sample_data}) def find_target_speech_segments(audio_chunk): embedding = pipeline({'waveform': audio_chunk}) similarity_score = cosine_similarity([embedding], [target_speaker_embedding]) return True if max(similarity_score)[0]>threshold else False ``` 这里假设已经获到了想要消除的目标人的短语录音(`target_sample_data`),并通过计算两者之间的余弦相似度得分来判断当前帧是否属于此发言人。 #### 应用降噪/静音效果 一旦确定了哪些时间段对应于所需移除的对象发区间之后,就可以运用诸如WebrtcVad之类的简单工具来进行简单的静默替换或是更加精细地调整频谱成分达到更好的听觉体验而不影响背景噪音和其他参与者对话质量的目的[^3]. ```python import webrtcvad vad = webrtcvad.Vad() vad.set_mode(3) def apply_vad_to_remove_voice(data, sample_rate=16000, frame_duration_ms=30): vad_frames = [] num_padding_frames = int(sample_rate * (frame_duration_ms / 1000)) ring_buffer = collections.deque(maxlen=num_padding_frames) triggered = False for i in range(len(data)//num_padding_frames + bool(len(data)%num_padding_frames)): chunk = data[i*num_padding_frames:(i+1)*num_padding_frames] is_speech = vad.is_speech(chunk.tobytes(), sample_rate) if not triggered and is_speech: triggered = True elif triggered and not is_speech: # 对应非目标发言区域保持原样输出 pass elif triggered and is_speech: # 将目标发言置零或者其他形式弱化处理 chunk *= 0.0 yield from chunk.tolist() ``` 最终经过上述流程处理完毕的新版纯净音频应当被保存下来并与原有的影像素材相结合形成新的成品影片。 ```python new_audio = list(apply_vad_to_remove_voice(modified_audio_bytes)) sf.write('cleaned_audio.wav', new_audio, samplerate) final_clip = video_clip.set_audio(AudioFileClip("cleaned_audio.wav")) final_clip.write_videofile("output_video_without_specific_persons_voice.mp4", codec='libx264') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值