您的位置:首页 > 游戏 > 游戏 > 语音识别 语音识别项目相关笔记内容

语音识别 语音识别项目相关笔记内容

2024/12/23 14:15:44 来源:https://blog.csdn.net/guoqingru0311/article/details/140494995  浏览:    关键词:语音识别 语音识别项目相关笔记内容

语音识别 语音识别项目相关笔记内容

  • 语音识别应用范畴
  • 语音识别框架
  • 语音基本操作
    • 使用scipy.io.wavfile读取wav音频文件获取采样率、长度、通道数
    • 使用numpy读取pcm格式音频文件
    • 读取wav音频文件,并绘制图像
    • 读取双声道的wav音频文件,分别绘制不同声道的波形图
    • 读取一个采样率为16k的音频,分别绘制出其时域与频域的图
  • 音频特征相关内容
  • RNN相关内容
  • 卷积模块
  • 语音识别小项目(音频事件检测)
    • 项目相关描述
    • 项目结构
    • 数据集
    • 音频数据校验
    • 配置文件
    • 音频特征抽取
    • 模型结构设计
    • 超参数
    • 训练

语音识别应用范畴

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

语音识别框架

在这里插入图片描述

语音基本操作

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用scipy.io.wavfile读取wav音频文件获取采样率、长度、通道数

import scipy.io.wavfile as wavfile# 读取 WAV 文件
file_path = 'path_to_your_audio_file.wav'
sampling_rate, data = wavfile.read(file_path)# 获取采样率
print(f'Sampling Rate: {sampling_rate} Hz')# 获取音频长度
# 音频长度 = 样本数 / 采样率
audio_length = data.shape[0] / sampling_rate
print(f'Audio Length: {audio_length:.2f} seconds')# 获取通道数
# 如果音频是单声道,data.shape 将返回 (样本数,)
# 如果音频是多声道,data.shape 将返回 (样本数, 通道数)
if len(data.shape) == 1:channels = 1
else:channels = data.shape[1]print(f'Number of Channels: {channels}')

使用numpy读取pcm格式音频文件

在这里插入图片描述

import numpy as np# 定义PCM文件的路径
pcm_file_path = 'path/to/your/audio.pcm'# 定义采样率和采样深度
sample_rate = 44100  # 例如,44.1 kHz
sample_depth = 16    # 例如,16-bit PCM# 读取PCM文件
def read_pcm(file_path, sample_rate, sample_depth):# 根据采样深度设置数据类型if sample_depth == 16:dtype = np.int16elif sample_depth == 32:dtype = np.int32else:raise ValueError("Unsupported sample depth: {}".format(sample_depth))# 读取二进制PCM数据并转换为NumPy数组pcm_data = np.fromfile(file_path, dtype=dtype)# 返回音频数据和采样率return pcm_data, sample_rate# 读取PCM文件数据
audio_data, sr = read_pcm(pcm_file_path, sample_rate, sample_depth)# 打印音频数据和采样率
print("Sample Rate: {} Hz".format(sr))
print("Audio Data: ", audio_data)

在这里插入图片描述

读取wav音频文件,并绘制图像

import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile# 读取 WAV 文件
sample_rate, audio_data = wavfile.read('your_audio_file.wav')# 如果音频是立体声,将其转换为单声道
if audio_data.ndim > 1:audio_data = audio_data.mean(axis=1)# 创建时间轴
time_axis = np.linspace(0, len(audio_data) / sample_rate, num=len(audio_data))# 绘制音频波形
plt.figure(figsize=(15, 5))
plt.plot(time_axis, audio_data, label='Audio waveform')
plt.xlabel('Time [s]')
plt.ylabel('Amplitude')
plt.title('Waveform of the audio file')
plt.legend()
plt.show()

读取双声道的wav音频文件,分别绘制不同声道的波形图

import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile# 读取 WAV 文件
sample_rate, audio_data = wavfile.read('your_stereo_audio_file.wav')# 检查是否为双声道音频
if audio_data.ndim != 2 or audio_data.shape[1] != 2:raise ValueError("音频文件不是双声道文件")# 分离左右声道
left_channel = audio_data[:, 0]
right_channel = audio_data[:, 1]# 创建时间轴
time_axis = np.linspace(0, len(left_channel) / sample_rate, num=len(left_channel))# 绘制左声道波形
plt.figure(figsize=(15, 5))
plt.subplot(2, 1, 1)
plt.plot(time_axis, left_channel, label='Left Channel', color='blue')
plt.xlabel('Time [s]')
plt.ylabel('Amplitude')
plt.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com