当前位置: 首页 > news >正文

KM算法识别语音数字0-9

KM算法识别语音数字0-9

数据集

import numpy as np
from scipy.cluster.vq import kmeans
import librosa
import pdb

def extract_feature(audio_path):
    y, sr = librosa.load(audio_path, sr = None)
    mfcc = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13).T
    return np.mean(mfcc, axis=0)

def train_kmeans_models(train_audio, num_clusters=3):
    models = {}
    for digit in range(10):
        feature = []
        for audio_path in train_audio[digit]:
            feature.append(extract_feature(audio_path))

        feature_array = np.array(feature)
        centroids, _ = kmeans(feature_array, num_clusters)
        models[digit] = centroids
    return models

def recognize_digit(audio_path, models):
    test_feature = extract_feature(audio_path)
    min_dist = float('inf')
    predicted_dight = - 1
    for digit, centroids in models.items():
        distance = np.linalg.norm(centroids - test_feature, axis=1)
        current_min_dist = np.min(distance)
        
        if current_min_dist < min_dist:
            min_dist = current_min_dist
            predicted_digit = digit
    
    return predicted_digit

if __name__ == "__main__":
    train_audio = {0:["D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\0\\10.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\0\\11.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\0\\12.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\0\\13.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\0\\14.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\0\\15.wav",],
                   1:["D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\1\\10.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\1\\11.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\1\\12.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\1\\13.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\1\\14.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\1\\15.wav",],
                   2:["D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\2\\10.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\2\\11.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\2\\12.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\2\\13.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\2\\14.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\2\\15.wav",],
                   3:["D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\3\\10.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\3\\11.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\3\\12.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\3\\13.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\3\\14.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\3\\15.wav",],
                   4:["D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\4\\10.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\4\\11.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\4\\12.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\4\\13.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\4\\14.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\4\\15.wav",],
                   5:["D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\5\\10.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\5\\11.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\5\\12.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\5\\13.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\5\\14.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\5\\15.wav",],
                   6:["D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\6\\10.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\6\\11.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\6\\12.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\6\\13.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\6\\14.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\6\\15.wav",],
                   7:["D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\7\\10.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\7\\11.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\7\\12.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\7\\13.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\7\\14.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\7\\15.wav",],
                   8:["D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\8\\10.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\8\\11.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\8\\12.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\8\\13.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\8\\14.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\8\\15.wav",],
                   9:["D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\9\\10.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\0\\11.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\9\\12.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\9\\13.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\9\\14.wav",
                      "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\9\\15.wav",]}
    # 训练模型
    # pdb.set_trace()
    models = train_kmeans_models(train_audio, num_clusters=3)
    
    # 测试识别
    test_audio = "D:\\workSpace\\AiLearnCode\\0-9DataSet\\b2012-main\\0-9\\1\\22.wav"
    recognized = recognize_digit(test_audio, models)
    print(f"识别结果为: {recognized}")

相关文章:

  • FreeCAD傻瓜教程-利用Python从代码复制粘贴生成零件
  • Shell 不神秘:拆解 Linux 命令行的逻辑与效率
  • 禁用微软输入法的简繁体切换
  • 别怕!51 单片机从入门到应用,小白也能轻松吃透
  • 快速上手Linux系统输入输出
  • 基于SVPWM和Park变换的异步电机转速控制系统simulink建模与仿真
  • 【Pandas】pandas DataFrame
  • 地图(八)利用python绘制散点地图
  • Spark,配置hadoop集群1
  • 【Easylive】Maven 多模块项目的 POM 文件配置详解
  • Java面试黄金宝典26
  • 烧结银:解锁金刚石超强散热潜力​
  • Python神经网络1000个案例算法汇总
  • UI设计中的交互技巧:如何让按钮更有反馈感?
  • 图灵完备——游戏中进行实践
  • 基础算法篇(3)(蓝桥杯常考点)-图论
  • 深入解析主线程退出与子线程管理:何时 Join(),何时 Detach()?
  • 学习记录-软件测试基础
  • 嵌入式八股RTOS与Linux--启动篇
  • 【虚拟仪器技术】Labview虚拟仪器技术应用教程习题参考答案[13页]
  • 电商网站设计周志/湖南网络推广排名
  • 幼儿园建设报备网站/百度推广竞价开户
  • wordpress网站导航模板/网站设计制作一条龙
  • 手机销售网站怎么做/重庆百度推广排名
  • 电子平台网站/百度知道提问
  • 武进网站建设价位/济南网站优化排名