NeMo 声纹识别VPR-实战

这篇具有很好参考价值的文章主要介绍了NeMo 声纹识别VPR-实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

声纹识别(VPR) ,生物识别技术的一种,也称为说话人识别 ,是从说话人发出的语音信号中提取声纹信息,从应用上看,可分为:

  • 说话人辨认(Speaker Identification):用以判断某段语音是若干人中的哪一个所说的,是“多选一”问题;
  • 说话人确认(Speaker Verification):用以确认某段语音是否是指定的某个人所说的,是“一对一判别”问题。

本文主要是识别两个声音是否为同一个人。

应用场景:APP声纹验证登录、坐席辅助助手登录后坐席是否为原坐席、客户进行业务申请时验证是否为客户本人。

使用Titanet-L模型,不需要训练,即可以直接针对中文/英文声音进行识别验证。

NeMo 声纹识别VPR-实战,ASR实战,人工智能,声纹识别,声纹验证

1、环境安装

pip install -U nemo_toolkit[all] ASR-metrics fastapi python-multipart ujson uvicorn -i https://pypi.tuna.tsinghua.edu.cn/simple

2、接口代码:

from fastapi import FastAPI, Request, File, UploadFile, Form

from fastapi.responses import HTMLResponse

from transformers import AutoTokenizer, AutoModel

import uvicorn, json, datetime

import torch

from fastapi.middleware.cors import CORSMiddleware

import nemo.collections.asr as nemo_asr

import os

import librosa

DEVICE = "cuda"

DEVICE_ID = "0"

CUDA_DEVICE = f"{DEVICE}:{DEVICE_ID}" if DEVICE_ID else DEVICE

print("GPU:", CUDA_DEVICE)

def torch_gc():

    if torch.cuda.is_available():

        with torch.cuda.device(CUDA_DEVICE):

            torch.cuda.empty_cache()

            torch.cuda.ipc_collect()

app = FastAPI()

app.add_middleware(

        CORSMiddleware,

        allow_origins=["*"],

        allow_credentials=True,

        allow_methods=["*"],

        allow_headers=["*"],

    )

model = nemo_asr.models.EncDecSpeakerLabelModel.restore_from('titanet-l.nemo')

print('声纹模型已准备就绪')

@app.get("/")

async def upload():

    content = """

<title>声纹识别</title>

<B>声纹识别</B>

<body>

<form action="/sv/" enctype="multipart/form-data" method="post">

<p>请求序号: <input type="text" name="request_id" value='3F2504E0-4F89-11D3-9A0C-0305E82C3301'/></p>

<p>

原始声纹:

<input name="oracle_file" type="file" accept=".wav,.mp3,.m4a,.amr">

</p>

<p>

开场声纹:

<input name="system_file" type="file" accept=".wav,.mp3,.m4a,.amr">

<input type="submit">

</p>

</form>

<p>

请求序号:由调用方维护,建议使用uuid,调用后原样返回,用于标识请求和调用方存储识别结果。

</p>

<p>

原始声纹:代表坐席的声纹。

</p>

<p>

开场声纹:登录坐席的声纹。

</p>

<p>

声纹要求:16K采样,单通道,小于10秒,支持格式:.wav/.mp3/.m4a/.amr

</p>

</body>

    """

    return HTMLResponse(content=content)

@app.post("/sv")

async def speaker_verify(request_id: str = Form(...), oracle_file: UploadFile = File(...), system_file: UploadFile = File(...)):

    global model

    data_path = '.'+ os.sep + 'data' + os.sep + request_id

    if not os.path.isdir(data_path):

        os.makedirs(data_path)

        

    oracle_file_name = data_path + os.sep + oracle_file.filename

    system_file_name = data_path + os.sep + system_file.filename

    with open(oracle_file_name, 'wb') as o:

        o.write(oracle_file.file.read())

    with open(system_file_name, 'wb') as s:

        s.write(system_file.file.read())

        

    d_o = librosa.get_duration(filename=oracle_file_name)

    d_s = librosa.get_duration(filename=system_file_name)

    

    if d_o>10 or d_s>10:

        now = datetime.datetime.now()

        time = now.strftime("%Y-%m-%d %H:%M:%S")

        return {

        "request_id": request_id,

        "result": repr("audio duration over 10s"),

        "status": 300,

        "time": time

    }

    

    result = model.verify_speakers(oracle_file_name, system_file_name,threshold=0.8)

    

    now = datetime.datetime.now()

    time = now.strftime("%Y-%m-%d %H:%M:%S")

    answer = {

        "request_id": request_id,

        "result": result,

        "status": 200,

        "time": time

    }

    log = "[" + time + "] " + '", request_id:"' + request_id + '", result:"' + repr(result) + '"'

    print(log)

    torch_gc()

    return answer

if __name__ == '__main__':

    uvicorn.run(app='api:app', host='0.0.0.0', port=8500, workers=4)

3、接口界面:

NeMo 声纹识别VPR-实战,ASR实战,人工智能,声纹识别,声纹验证

4、验证结果:

NeMo 声纹识别VPR-实战,ASR实战,人工智能,声纹识别,声纹验证文章来源地址https://www.toymoban.com/news/detail-649434.html

到了这里,关于NeMo 声纹识别VPR-实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NeMo中文/英文ASR模型微调训练实践

    1.安装nemo pip install -U nemo_toolkit[all] ASR-metrics 2.下载ASR预训练模型到本地(建议使用huggleface,比nvidia官网快很多) 3.从本地创建ASR模型 asr_model = nemo_asr.models.EncDecCTCModel.restore_from(\\\"stt_zh_quartznet15x5.nemo\\\") 3.定义train_mainfest,包含语音文件路径、时长和语音文本的json文件 4.读取模型的

    2024年02月13日
    浏览(28)
  • 基于Solr的智能化人工智能与智能图像识别

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 随着人工智能技术的快速发展,人工智能与图像识别应用越来越广泛。在实际应用中,基于Solr的智能化人工智能与智能图像识别技术具有很高的实用价值和可行性。 1.2. 文章目的 本文旨在讲解如何基于Solr实现智能化人工智

    2024年02月07日
    浏览(47)
  • ocr、人工智能、文字识别接口

    人工智能这个词近几年热度颇高,工业上有人称之为“机器代工”,生活中有人称之为“物联网”,而所体现出来的就是智能化,减少人工参与。翔云公有云平台应运而生,提供的OCR API及实名认证API使产品智能化,自动进行图片文字识别及身份证、手机号、银行卡、发票等信

    2024年04月26日
    浏览(31)
  • 人工智能技术在智能音箱中的应用:智能语音识别与智能交互

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 智能音箱作为智能家居的重要组成部分,近年来得到了越来越多的用户青睐。随着人工智能技术的不断发展,智能音箱的核心功能之一——智能语音识别与智能交互也越来越受到人们的关注。智能语音识别技术可以让用户更

    2024年02月07日
    浏览(41)
  • 人工智能大作业——人脸识别系统(最终)

    写在前面 时间过得飞快,时间已经距离我发第一篇文章过去2年多了,也不再从事代码工作,偶然间上到csdn翻看文章经过,看到还是有些人关注人脸识别系统的后续的,我猜大概率是学弟学妹们正在被期末实验折磨中,翻了翻原先的代码还能找到就一并更完了吧,如果抄了我

    2024年01月16日
    浏览(54)
  • 智能语音识别在人工智能应用中的重要性

    作者:禅与计算机程序设计艺术 随着计算机的发展、移动互联网的普及和互联网服务的快速发展,语音识别技术也逐渐走入人们的视野中。相对于手写文字或是拼音方式输入的方式,语音输入的方式带来的便利、准确率提高的效果,使得越来越多的人开始喜欢用语音的方式来

    2024年02月07日
    浏览(51)
  • 第14章-Python-人工智能-语言识别-调用百度语音识别

            百度语音识别API是可以免费试用的,通过百度账号登录到百度智能云,在语音技术页面创建的应用,生成一个语音识别的应用,这个应用会给你一个APIKey和一个Secret Key,如图14.1所示。  我们在自己的程序中用 API Key 和 Secret Key 这两个值获取 Koken,然后再通过 Token 调

    2024年02月08日
    浏览(40)
  • 【人工智能】从零开始的口罩识别系统

    本文是从零开始搭建口罩识别系统的学习过程总结,涉及到的软件环境、硬件环境、代码、操作都会一一给出。 在开始之前,我们首先整理一下需要的软件环境清单. 软件环境: 1. Python 2. labelimg 3. AI Studio 4. YOLO2COCO 5. PaddleUtils 6. paddleyolo 首先,笔者的电脑是安装了Python的,但

    2024年02月16日
    浏览(33)
  • Python人工智能应用--图像识别&&深度学习

    像素(缩写为px)是图像中的最小单位,由一个个小方格组成。 这些小方格都有一个固定的位置和颜色,共同决定了图像所呈现出来的样子。 这些小方格的行数与列数又被叫做分辨率。我们常说的某幅图像的分辨率是1280×720,指的就是这张图中的每一行都有1280个像素,每一列都

    2024年04月09日
    浏览(42)
  • 人工智能与情绪识别:未来的关键技术

    人工智能(Artificial Intelligence, AI)是一门研究如何让计算机模拟人类智能的科学。情绪识别(Emotion Recognition, ER)是一种通过分析人类行为、语言和生理信号来识别人类情绪的技术。随着人工智能技术的发展,情绪识别在许多领域都有广泛的应用,例如医疗、教育、娱乐、金融等。

    2024年02月22日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包