【Python百宝箱】Python中的音视频处理: 探索多样化的库和工具

Python中的音视频处理: 探索多样化的库和工具

前言

在数字化时代,音视频处理不仅仅是娱乐产业的需求,还渗透到了教育、医疗、安防等多个领域。Python作为一门强大而灵活的编程语言,为开发人员提供了丰富的资源来处理和分析音视频数据。本文旨在为读者介绍Python中一些主流的音视频处理库,帮助他们更好地应对实际挑战,提高处理效率,实现更丰富的功能。

文章目录

  • Python中的音视频处理: 探索多样化的库和工具
    • 前言
    • 1. 引言
      • 1.1 背景介绍
    • 2. 音频处理
      • 2.1 pydub库
        • 2.1.1 概述
        • 2.1.2 核心功能
        • 2.1.3 音频效果和调整
          • 2.1.3.1 音量调整
          • 2.1.3.2 音频混响效果
        • 2.1.4 音频分析和处理
          • 2.1.4.1 波形图绘制
          • 2.1.4.2 频谱图绘制
      • 2.2 soundfile库
        • 2.2.1 概述
        • 2.2.2 主要特性
        • 2.2.3 音频滤波和处理
          • 2.2.3.1 低通滤波
          • 2.2.3.2 音频放大和缩小
    • 3. 视频处理
      • 3.1 moviepy库
        • 3.1.1 概述
        • 3.1.2 核心功能
        • 3.1.3 视频特效和转场效果
          • 3.1.3.1 添加音频
          • 3.1.3.2 视频混合和叠加
        • 3.1.4 视频分析和处理
          • 3.1.4.1 视频帧处理
          • 3.1.4.2 视频速度调整
      • 3.2 OpenCV库
        • 3.2.1 概述
        • 3.2.2 视频处理功能
        • 3.2.3 视频分析和特征提取
          • 3.2.3.1 运动检测
          • 3.2.3.2 视频中的人脸检测
      • 3.3 imageio-ffmpeg库
        • 3.3.1 概述
        • 3.3.2 核心功能
        • 3.3.3 视频剪辑和转码
          • 3.3.3.1 视频剪辑
          • 3.3.3.2 视频转码
        • 3.3.4 视频处理和特效
          • 3.3.4.1 添加水印
          • 3.3.4.2 调整亮度和对比度
    • 4. 综合应用
      • 4.1 音视频合成
        • 4.1.1 使用pydub和moviepy进行音视频合成
        • 4.1.2 使用pydub和moviepy进行音视频合成的高级特效
          • 4.1.2.1 添加背景音乐
          • 4.1.2.2 视频叠加和混合
        • 4.1.3 高级音频处理和混音
          • 4.1.3.1 音频混音
          • 4.1.3.2 音频剪辑和拼接
      • 4.2 音频分析与可视化
        • 4.2.1 使用librosa和matplotlib进行音频可视化
        • 4.2.2 使用librosa和matplotlib进行高级音频分析
          • 4.2.2.1 节奏分析与图示
          • 4.2.2.2 音频谱图细节展示
      • 总结

1. 引言

1.1 背景介绍

音视频处理在今天的应用中变得愈发重要。Python提供了多样且强大的库和工具,使得音视频处理更加便捷。

2. 音频处理

2.1 pydub库

2.1.1 概述

pydub是一个用于处理音频文件的强大库,提供了丰富的功能,包括格式转换、切割等。

2.1.2 核心功能
  • 音频格式转换
from pydub import AudioSegmentaudio = AudioSegment.from_file("input.wav", format="wav")
audio.export("output.mp3", format="mp3")
  • 音频切割和合并
segment = audio[:5000]  # 切割前5秒
combined = audio + segment  # 合并音频
  • 音频格式信息获取
channels = audio.channels
sample_width = audio.sample_width
2.1.3 音频效果和调整
2.1.3.1 音量调整

pydub库不仅可以进行基本的格式转换和切割,还能轻松进行音频效果的调整。以下是调整音量的实例代码:

from pydub import AudioSegmentaudio = AudioSegment.from_file("input.mp3", format="mp3")
# 将音量提高 10 dB
louder_audio = audio + 10# 将音量降低 5 dB
quieter_audio = audio - 5# 导出调整音量后的音频
louder_audio.export("louder_output.mp3", format="mp3")
quieter_audio.export("quieter_output.mp3", format="mp3")
2.1.3.2 音频混响效果

通过pydub,你可以为音频添加混响效果,使其更加生动。以下是添加混响效果的实例代码:

from pydub import AudioSegment
from pydub.effects import reverbaudio = AudioSegment.from_file("input.wav", format="wav")
# 添加混响效果
reverberated_audio = reverb(audio, reverberance=50, high_freq_damping=10)# 导出带有混响效果的音频
reverberated_audio.export("reverberated_output.wav", format="wav")
2.1.4 音频分析和处理
2.1.4.1 波形图绘制

pydub库也可以用于简单的音频分析和可视化。以下是绘制音频波形图的实例代码:

from pydub import AudioSegment
import matplotlib.pyplot as pltaudio = AudioSegment.from_file("input.wav", format="wav")
# 将音频数据转换为numpy数组
samples = audio.get_array_of_samples()# 绘制波形图
plt.plot(samples)
plt.xlabel("Sample")
plt.ylabel("Amplitude")
plt.title("Audio Waveform")
plt.show()
2.1.4.2 频谱图绘制

利用pydub和matplotlib库,你可以轻松生成音频的频谱图:

from pydub import AudioSegment
import matplotlib.pyplot as pltaudio = AudioSegment.from_file("input.wav", format="wav")
# 获取音频频谱数据
spectrum = audio.spectrogram()# 绘制频谱图
plt.imshow(spectrum, aspect='auto', cmap='viridis', origin='lower')
plt.xlabel("Time")
plt.ylabel("Frequency")
plt.title("Audio Spectrogram")
plt.show()

通过这些拓展的例子,我们展示了pydub库在音频处理中更多的功能,包括音频效果调整和简单的分析处理。这使得pydub成为一个功能强大且灵活的音频处理工具。

2.2 soundfile库

2.2.1 概述

soundfile用于读写音频文件,支持多种音频格式,提供了高效的音频文件操作接口。

2.2.2 主要特性
  • 高性能音频读取和写入
import soundfile as sfdata, samplerate = sf.read('input.wav')
sf.write('output.flac', data, samplerate)
  • 多格式支持
supported_formats = sf.available_formats()
  • 元数据处理
info = sf.info('input.wav')
channels = info.channels
duration = info.duration
2.2.3 音频滤波和处理
2.2.3.1 低通滤波

soundfile库不仅能够进行音频读写,还支持一些基本的音频滤波操作。以下是一个低通滤波的实例代码:

import soundfile as sf
import numpy as np
from scipy import signal# 生成一个示例音频文件
sample_rate = 44100
time = np.arange(0, 5, 1/sample_rate)
signal_wave = np.sin(2 * np.pi * 1000 * time)  # 1000 Hz 正弦波
sf.write('sample.wav', signal_wave, sample_rate)# 读取音频文件
data, samplerate = sf.read('sample.wav')# 设计一个低通滤波器
nyquist = 0.5 * sample_rate
cutoff_frequency = 500  # 500 Hz 截止频率
normal_cutoff = cutoff_frequency / nyquist
b, a = signal.butter(4, normal_cutoff, btype='low', analog=False, output='ba')# 应用滤波器
filtered_data = signal.lfilter(b, a, data)# 写入滤波后的音频文件
sf.write('filtered_output.wav', filtered_data, samplerate)
2.2.3.2 音频放大和缩小

通过soundfile库,你可以轻松进行音频的放大和缩小操作。以下是一个音频放大的实例代码:

import soundfile as sf
import numpy as np# 生成一个示例音频文件
sample_rate = 44100
time = np.arange(0, 5, 1/sample_rate)
signal_wave = np.sin(2 * np.pi * 1000 * time)  # 1000 Hz 正弦波
sf.write('sample.wav', signal_wave, sample_rate)# 读取音频文件
data, samplerate = sf.read('sample.wav')# 将音频放大两倍
amplified_data = data *
### 2.3 librosa库#### 2.3.1 概述
librosa专注于音频分析和特征提取,提供了丰富的音频处理工具和算法。#### 2.3.2 核心功能
- **音频特征提取**
```python
import librosay, sr = librosa.load('input.wav')
chroma = librosa.feature.chroma_stft(y=y, sr=sr)
  • 节奏分析
tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)
  • 音频信号处理
y_harm, y_perc = librosa.effects.hpss(y)

3. 视频处理

3.1 moviepy库

3.1.1 概述

moviepy是一个专注于视频处理的库,支持视频剪辑、合并、特效添加等功能。

3.1.2 核心功能
  • 视频剪辑和合并
from moviepy.editor import VideoFileClipclip = VideoFileClip("input.mp4").subclip(10, 20)
clip.write_videofile("output.mp4")
  • 文字和特效添加
clip = clip.fx(vfx.text.write, "Hello World!", fontsize=70, color='white')
  • 视频格式转换
clip.write_gif("output.gif")
3.1.3 视频特效和转场效果
3.1.3.1 添加音频

在视频中添加音频是moviepy库的一个强大功能。以下是一个将音频添加到视频的实例代码:

from moviepy.editor import VideoFileClip# 读取视频和音频文件
video_clip = VideoFileClip("video.mp4")
audio_clip = AudioFileClip("audio.mp3")# 将音频添加到视频中
video_clip = video_clip.set_audio(audio_clip)# 导出带有音频的视频
video_clip.write_videofile("video_with_audio.mp4")
3.1.3.2 视频混合和叠加

通过moviepy库,你可以将多个视频混合在一起,创建出令人惊艳的效果。以下是一个视频混合的实例代码:

from moviepy.editor import VideoFileClip, clips_array# 读取两个视频文件
clip1 = VideoFileClip("video1.mp4")
clip2 = VideoFileClip("video2.mp4")# 将两个视频横向叠加
final_clip = clips_array([[clip1, clip2]])# 导出叠加后的视频
final_clip.write_videofile("combined_video.mp4")
3.1.4 视频分析和处理
3.1.4.1 视频帧处理

moviepy库也支持对视频的每一帧进行处理。以下是一个在视频中添加模糊效果的实例代码:

from moviepy.editor import VideoFileClip
from moviepy.video.fx import all# 读取视频文件
clip = VideoFileClip("input.mp4")# 对每一帧添加模糊效果
blurred_clip = clip.fx(all.fx.blur, k=5)# 导出添加模糊效果后的视频
blurred_clip.write_videofile("blurred_output.mp4")
3.1.4.2 视频速度调整

调整视频的播放速度是moviepy库的另一个有趣的功能。以下是一个将视频减速两倍的实例代码:

from moviepy.editor import VideoFileClip# 读取视频文件
clip = VideoFileClip("input.mp4")# 将视频减速两倍
slow_clip = clip.fx(vfx.speedx, 0.5)# 导出减速后的视频
slow_clip.write_videofile("slow_output.mp4")

通过这些例子,我们展示了moviepy库在视频处理中更多的功能,包括音频处理、视频混合和帧处理。这使得moviepy成为一个强大的工具,适用于各种视频编辑和处理任务。

3.2 OpenCV库

3.2.1 概述

OpenCV广泛应用于计算机视觉,同时也支持视频处理,提供了丰富的视频处理功能。

3.2.2 视频处理功能
  • 视频捕获和展示
import cv2cap = cv2.VideoCapture('input.mp4')
ret, frame = cap.read()
cv2.imshow('Video Frame', frame)
  • 视频帧处理
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  • 视频编解码
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
out.write(frame)
3.2.3 视频分析和特征提取
3.2.3.1 运动检测

OpenCV提供了强大的运动检测功能,可以用于监控场景中的活动。以下是一个简单的运动检测实例代码:

import cv2cap = cv2.VideoCapture('input.mp4')# 读取第一帧作为背景
ret, background = cap.read()while True:ret, frame = cap.read()# 计算当前帧与背景之间的差异diff = cv2.absdiff(frame, background)# 将差异图像转换为灰度图gray_diff = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)# 使用阈值进行二值化处理_, thresh = cv2.threshold(gray_diff, 30, 255, cv2.THRESH_BINARY)# 显示运动检测结果cv2.imshow('Motion Detection', thresh)# 更新背景为当前帧background = frameif cv2.waitKey(30) & 0xFF == 27:  # 按ESC键退出breakcap.release()
cv2.destroyAllWindows()
3.2.3.2 视频中的人脸检测

OpenCV也提供了人脸检测的功能,可以在视频中识别人脸。以下是一个简单的人脸检测实例代码:

import cv2# 加载人脸检测器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')cap = cv2.VideoCapture('input.mp4')while True:ret, frame = cap.read()# 将视频帧转换为灰度图gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# 在灰度图上进行人脸检测faces = face_cascade.detectMultiScale(gray_frame, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))# 在原始图像上标记检测到的人脸for (x, y, w, h) in faces:cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)# 显示带有人脸标记的图像cv2.imshow('Face Detection', frame)if cv2.waitKey(30) & 0xFF == 27:  # 按ESC键退出breakcap.release()
cv2.destroyAllWindows()

通过这些例子,我们展示了OpenCV库在视频处理中更多的功能,包括运动检测和人脸检测。这使得OpenCV成为一个全面的工具,适用于各种视频分析和处理任务。

3.3 imageio-ffmpeg库

3.3.1 概述

imageio-ffmpeg是基于imageio的插件,提供对FFmpeg的支持,用于处理更多视频格式和编解码选项。

3.3.2 核心功能
  • 支持更多视频格式
import imageio_ffmpeg as ffmpeginput_path = 'input.mkv'
output_path = 'output.mp4'
ffmpeg.input(input_path).output(output_path).run()
  • 提供更多编解码选项
ffmpeg.input('input.mp4').output('output.avi', codec='libx264').run()
3.3.3 视频剪辑和转码
3.3.3.1 视频剪辑

imageio-ffmpeg库可以方便地进行视频剪辑,选择特定时间段的视频进行处理。以下是一个简单的视频剪辑实例代码:

import imageio_ffmpeg as ffmpeginput_path = 'input.mp4'
output_path = 'trimmed_output.mp4'# 从第5秒到第15秒的视频片段
ffmpeg.input(input_path, ss=5, to=15).output(output_path).run()
3.3.3.2 视频转码

通过imageio-ffmpeg库,你可以轻松进行视频格式的转码。以下是一个将视频转换为WebM格式的实例代码:

import imageio_ffmpeg as ffmpeginput_path = 'input.mp4'
output_path = 'output.webm'ffmpeg.input(input_path).output(output_path, codec='libvpx', quality=8).run()
3.3.4 视频处理和特效
3.3.4.1 添加水印

imageio-ffmpeg库也支持在视频上添加水印。以下是一个在视频中添加水印的实例代码:

import imageio_ffmpeg as ffmpeginput_path = 'input.mp4'
output_path = 'output_with_watermark.mp4'
watermark_path = 'watermark.png'ffmpeg.input(input_path).output(output_path, vf='movie=' + watermark_path + ' [watermark]; [in][watermark] overlay=W-w-10:H-h-10 [out]').run()
3.3.4.2 调整亮度和对比度

imageio-ffmpeg库允许你对视频进行亮度和对比度的调整。以下是一个调整亮度和对比度的实例代码:

import imageio_ffmpeg as ffmpeginput_path = 'input.mp4'
output_path = 'output_adjusted.mp4'ffmpeg.input(input_path).output(output_path, vf='eq=brightness=1.5:contrast=1.2').run()

通过这些例子,我们展示了imageio-ffmpeg库在视频处理中更多的功能,包括视频剪辑、转码、添加水印和调整亮度对比度。这使得imageio-ffmpeg成为一个强大的工具,适用于各种视频处理需求。

4. 综合应用

4.1 音视频合成

4.1.1 使用pydub和moviepy进行音视频合成
  • 整合音频和视频文件
video_clip = VideoFileClip("video.mp4")
audio_clip = AudioSegment.from_file("audio.wav", format="wav")video_clip = video_clip.set_audio(audio_clip)
video_clip.write_videofile("output.mp4")
  • 添加特效和过渡效果
final_clip = CompositeVideoClip([video_clip])
final_clip = final_clip.fx(vfx.fadein, 2).fx(vfx.fadeout, 2)
final_clip.write_videofile("final_output.mp4")
4.1.2 使用pydub和moviepy进行音视频合成的高级特效
4.1.2.1 添加背景音乐

除了基本的音视频合成,你还可以通过pydub和moviepy库为视频添加背景音乐。以下是一个将音频文件作为背景音乐添加到视频的实例代码:

from moviepy.editor import VideoFileClip, AudioFileClipvideo_clip = VideoFileClip("video.mp4")
audio_clip = AudioFileClip("background_music.mp3")# 将音频文件设置为视频的背景音乐
video_clip = video_clip.set_audio(audio_clip)# 导出带有背景音乐的视频
video_clip.write_videofile("video_with_music.mp4")
4.1.2.2 视频叠加和混合

通过moviepy库,你可以将多个视频叠加在一起,创建出更复杂的合成效果。以下是一个视频叠加和混合的实例代码:

from moviepy.editor import VideoFileClip, CompositeVideoClipclip1 = VideoFileClip("video1.mp4")
clip2 = VideoFileClip("video2.mp4")# 将两个视频叠加在一起
final_clip = CompositeVideoClip([clip1, clip2])# 导出叠加后的视频
final_clip.write_videofile("combined_video.mp4")
4.1.3 高级音频处理和混音
4.1.3.1 音频混音

通过pydub库,你可以进行更高级的音频处理,包括混音。以下是一个将两个音频文件混合的实例代码:

from pydub import AudioSegmentaudio1 = AudioSegment.from_file("audio1.wav", format="wav")
audio2 = AudioSegment.from_file("audio2.mp3", format="mp3")# 将两个音频文件混合
mixed_audio = audio1.overlay(audio2)# 导出混合后的音频文件
mixed_audio.export("mixed_output.mp3", format="mp3")
4.1.3.2 音频剪辑和拼接

通过pydub库,你可以对音频进行更精细的剪辑和拼接。以下是一个将两个音频文件拼接在一起的实例代码:

from pydub import AudioSegmentaudio1 = AudioSegment.from_file("audio1.wav", format="wav")
audio2 = AudioSegment.from_file("audio2.mp3", format="mp3")# 将两个音频文件拼接在一起
concatenated_audio = audio1 + audio2# 导出拼接后的音频文件
concatenated_audio.export("concatenated_output.mp3", format="mp3")

通过这些高级的例子,我们展示了使用pydub和moviepy库进行音视频合成的更多功能,包括添加背景音乐、视频叠加和混合,以及高级音频处理和拼接。这使得这两个库成为处理复杂音视频场景的理想选择。

4.2 音频分析与可视化

4.2.1 使用librosa和matplotlib进行音频可视化
  • 波形图和频谱图展示
import matplotlib.pyplot as pltplt.figure(figsize=(12, 8))plt.subplot(2, 1, 1)
librosa.display.waveshow(y, sr=sr)plt.subplot(2, 1, 2)
librosa.display.specshow(chroma, y_axis='chroma', x_axis='time')plt.show()
  • 音频特征提取
tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)
4.2.2 使用librosa和matplotlib进行高级音频分析
4.2.2.1 节奏分析与图示

librosa库不仅提供了基本的音频可视化功能,还支持更高级的音频分析。以下是一个使用librosa进行节奏分析和可视化的实例代码:

import librosa.display
import matplotlib.pyplot as plty, sr = librosa.load('audio_file.wav')# 节奏分析
tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)# 绘制波形图和节奏图
plt.figure(figsize=(12, 8))plt.subplot(2, 1, 1)
librosa.display.waveshow(y, sr=sr)plt.subplot(2, 1, 2)
beat_times = librosa.frames_to_time(beat_frames, sr=sr)
librosa.display.specshow(librosa.feature.chroma_stft(y, sr=sr), y_axis='chroma', x_axis='time')
plt.vlines(beat_times, 0, 12, colors='r', linestyle='--', linewidth=2, alpha=0.5)plt.show()
4.2.2.2 音频谱图细节展示

librosa库还允许你对音频进行更详细的频谱分析。以下是一个展示音频谱图细节的实例代码:

import librosa.display
import matplotlib.pyplot as plty, sr = librosa.load('audio_file.wav')# 计算短时傅里叶变换(STFT)
D = librosa.amplitude_to_db(librosa.stft(y), ref=np.max)# 绘制音频谱图的细节
plt.figure(figsize=(12, 8))librosa.display.specshow(D, sr=sr, x_axis='time', y_axis='log')
plt.colorbar(format='%+2.0f dB')plt.title('Spectrogram (log scale)')
plt.show()

通过这些例子,我们展示了使用librosa和matplotlib进行音频可视化和分析的更高级功能,包括节奏分析、波形图和音频谱图的细节展示。这使得librosa成为处理音频数据的强大工具。

总结

本文深入探讨了Python中丰富的音视频处理库和工具,涵盖了音频和视频处理的各个方面。我们从基础的库如pydub、soundfile、librosa,到专注于视频处理的库如moviepy、OpenCV、imageio-ffmpeg,逐一介绍了它们的概述、核心功能,并提供了详细的实例代码。

在音频处理方面,我们了解了如何使用pydub进行音频格式转换、切割和合并,利用soundfile库实现高性能音频读取和写入,以及通过librosa库进行音频特征提取和节奏分析。

在视频处理方面,我们探讨了moviepy库的视频剪辑和特效添加功能,展示了OpenCV库的视频捕获和帧处理,介绍了imageio-ffmpeg库处理更多视频格式和编解码选项的优势。

综合应用部分展示了如何使用pydub和moviepy进行音视频合成,以及高级特效的运用,包括添加背景音乐、视频叠加和混合,以及高级音频处理和拼接。

最后,我们通过librosa和matplotlib展示了如何进行音频可视化和高级音频分析,包括波形图、频谱图、节奏分析等。

通过学习本文,读者将获得全面的音视频处理知识,能够更加灵活地运用这些工具来满足各种音视频处理需求。Python的音视频处理领域在不断创新和发展,期待读者能够在未来的项目中充分发挥所学,创造出更加引人入胜的音视频作品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/166252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server Profiler基础使用

文章目录 SQL Server Profiler基础使用简介如何打开直接打开Microsoft SQL Server Management Studio工具栏打开 配置跟踪新建跟踪跟踪属性配置常规配置事件选择 启动跟踪跟踪时执行脚本跟踪记录 暂停跟踪停止跟踪 SQL Server Profiler基础使用 简介 一个图形界面工具&#x…

逆矩阵相关性质与例题

1.方阵的行列式:就是将方阵中的每一个元素转换至行列式中。 1.性质一:转置方阵的行列式等于转置前的行列式。(对标性质:行列式与它的转置行列式相等) 2.性质二:|ka||a|*k的n次方,n为方阵阶数。 …

芯片设计—低功耗isolation cell

(一)低功耗isolation cell的目的 低功耗架构设计需要前后端拉通规划,前端设计有PMU功耗管理单元,比如A模块电压常开,B模块电压可关断,那么请思考,当B模块关断电压后,B模块输出到A模…

PDF控件Spire.PDF for .NET【转换】演示:将在 C#/VB.NET 中将 PDF 转换为 PCL

本文我们将演示如何通过调用 Spire.PDF 提供的方法 PdfDocument.SaveToStream() 将 PDF 页面转换为 HTML、Word、SVG、XPS、PDF 并将它们保存到流中。并且从Spire.PDF版本4.3开始,它新支持转换定义范围的PDF页面并将其保存到流中。 Spire.Doc 是一款专门对 Word 文…

精益制造中的周转箱和工具柜优势

制造业(Manufacturing industry)是指机械工业时代利用某种资源(物料、能源、设备、工具、资金、技术、信息和人力等),按照市场要求,通过制造过程,转化为可供人们使用和利用的大型工具、工业品与…

大语言模型概述(二):基于亚马逊云科技的研究分析与实践

上期介绍了大语言模型的定义和发展历史,本期将分析基于亚马逊云科技的大语言模型相关研究方向,以及大语言模型的训练和构建优化。 大语言模型研究方向分析 Amazon Titan 2023 年 4 月,亚马逊云科技宣布推出 Amazon Titan 大语言模型。根据…

redis运维(十七)事务

一 redis事务 事务核心参考 ① 基础概念 1、场景引入核心:通过现象思考原因? 2、事务的概念 3、事务四大特性说明: redis只具备部分特性 重点1: 原子性和一致性 重点2: 隔离性和持久性 ② redis的事务 1、基础铺垫备注&…

runapi的学习记录

安装地址 git clone https://github.com/star7th/showdoc.git 默认账号与密码 showdoc 123456 首页 访问地址:http://192.168.51.2:4042/web/#/ 进入ShowDoc首页 登录showdoc文档系统 http://192.168.51.2:4042/web/#/user/login 默认账号密码showdoc/12345…

unity Terrain 性能问题

在实践过程中unity发生进入场景GPU爆显存的情况,经过调查发现是使用Terrain造成的问题,这个问题在使用一个Terrain的时候并不会发生,但是在使用多个时会发生。 似乎在使用过程中Terrain会直接把Terrain的整个地图加载,造成移动设…

​ 一文带你了解多文件混淆加密

​🔒 一文带你了解多文件混淆加密 目录 🔒 一文带你了解 JavaScript 多文件混淆加密 ipaguard加密前 ipaguard加密后 ​ 🔒 一文带你了解 JavaScript 多文件混淆加密 JavaScript 代码多文件混淆加密可以有效保护源代码不被他人轻易盗取。…

关闭vscode打开的本地服务器端口

vscode开了本地的一个端口“8443”当本地服务器端口,然后随手把VScode一关,后来继续做发现8443端口已经被占用了。   原来,即便关闭了编译器VScode,服务器依然是被node.exe运行着的。那这个端口怎么才能关掉呢?   …

Kotlin基础——Lambda和函数式编程

Lambda 使用 { } 定义Lamba,调用run运行 run { println(1) }更常用的为 { 参数 -> 操作 },还可以存储到变量中,把变量作为普通函数对待 val sum { x: Int, y: Int -> x y } println(sum(1, 2))maxBy()接收一个Lambda,传…

EXIT外部中断 HAL库+cubeMX

一.cubeMX外部中断配置 1.系统内核 2.中断管理 3.选择抢占优先级和响应优先级,共有5个等级,在这里就使用库函数编写代码时最常用的2位抢占优先级2位响应优先级。 4.勾选使能选项,后面的两个零,第一个代表抢占优先级的等级&#xf…

用于计算机屏幕安全摄像头系统:Screen Anytime Crack

Screen Anytime 是一款软件,旨在自动将整个用户会话或 PC/服务器/VM/Kiosk 的 /RDP/Citrix/RemoteApp 会话的屏幕活动记录到视频日志文件中,以用于记录、审核和监控目的。通过重播其高度压缩的视频,您可以轻松回顾单台计算机或一组服务器/PC …

基于C#实现并查集

一、场景 有时候我们会遇到这样的场景,比如:M{1,4,6,8},N{2,4,5,7},我的需求就是判断{1,2}是否属于同一个集合,当然实现方法有很多,一般情况下,普通青年会做出 O(MN)的复杂度,那么有没有更轻量级的复杂度呢…

Vatee万腾科技的独特力量:Vatee数字时代创新的新视野

在数字化时代的浪潮中,Vatee万腾科技以其独特而强大的创新力量,为整个行业描绘了一幅崭新的视野。这不仅是一场科技创新的冒险,更是对未来数字时代发展方向的领先探索。 Vatee万腾将创新视为数字时代发展的引擎,成为推动行业向前的…

ubuntu 安装python3.13

列出 /usr/bin/ 目录下所有以 python 开头的文件和目录 ls /usr/bin/python* 添加Python软件源。您可以通过以下命令将Python的软件源添加到您的系统中 sudo add-apt-repository ppa:deadsnakes/ppa 然后运行以下命令以更新软件包列表: sudo apt-get update 安…

vue每个阶段的生命周期做了什么

Vue 实例的生命周期可以分为创建阶段、挂载阶段、更新阶段和销毁阶段。下面是每个阶段具体干了什么的说明和对应的代码示例: 创建阶段 beforeCreate: 此阶段在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用…

Spring AOP 底层原理

Spring AOP 底层原理 aop 底层是采用动态代理机制实现的:接口实现类 (1)如果要代理的对象,实现了某个接口,那么 Spring AOP 会使用 JDK Proxy,去创建代理对象。 (2)没有实现接口的对…

下一代ETL工具:微服务架构的全新数据集成平台

当前对于大型企业来说数据的整合和加工变得越来越重要。随着业务需求的不断增长,企业数据量越来越大,数据管道越来越多,现有的ETL(抽取、转换、加载)工具已不再满足实时、高性能和微服务架构等现代化需求。因此&#x…