实时语音处理工具,关键字识别(与Python3.5及更早版本兼容)

pyrtstools的Python项目详细描述


Pyrtstools

简介

python实时语音工具是一个类集合,旨在为语音用户界面开发实时语音处理管道。

免责声明: 这是一个早期版本,旨在为linto提供语音命令检测管道。 但是,这些元素被设计为通用的,并且可以用于其他目的。

功能

Pyrtstools具有不同的功能块:

  • 音频采集
  • 语音活动检测
  • 特征提取
  • 关键字定位

所有元件的设计都易于使用和互连。

安装

要安装软件包,需要安装python3和pip/setuptools。

推荐的库是:

  • Portaudio19 dev(用于PyAudio麦克风输入)

python依赖项是自动安装的。 (请注意,可能需要一些时间,因为其中一些(numpy、tensorflow)太大了)

Pypi

sudo pip3 install pyrtstools

来源

git clone https://github.com/linto-ai/pyrtstools.git
cd pyrtstools
sudo ./setup.py install

使用量

下面是一个简单的管道,用于从麦克风检测热词

importpyrtstoolsasrtsaudioParam=rts.listenner.AudioParams()# Hold signal parameterslistenner=rts.listenner.Listenner(audioParam)# Microphone inputvad=rts.vad.VADer()# Voice activity detectionbtn=rts.transform.ByteToNum(normalize=True)#Convert raw signal to numericalfeatParams=rts.features.MFCCParams()# Hold MFCC features parametersmfcc=rts.features.SonopyMFCC(featParams)# Extract MFCCkws=rts.kws.KWS("/path/to/your-model.pb",(30,13))# Hotword spotting pipeline=rts.Pipeline([listenner,vad,btn,mfcc,kws])# Holds elements and links thempipeline.start()# Start all the elementstry:listenner.join()# Wait for the microphone to finish (To block the execution)exceptKeyboardInterrupt:pipeline.close()

每个块都位于子包中:

  • 音频采集:pyrtstools.listenner
  • 语音活动检测:pyrtstools.vad
  • 特征提取:pyrtstools.features
  • 关键词识别:pyrtstools.kws
  • 信号转换:pyrtstools.transform

每个元素和类都有文档记录。

许可证

这个项目是在agplv3许可证下,请随意使用和修改这些条款下的代码。 参见许可证

已用库

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java传递位置作为FragmentPagerAdapter中片段的参数   html Java Jsoup循环打印   java如何使用FileOutputStream写入数据而不丢失旧数据?   java在测试用例类/方法中执行sql before/after/in   java在javafx中注册鼠标处理程序,但处理程序不是内联的   Android嵌入了一个C++库的java代码,不需要TopPLE程序来嵌入它?   片段类内部的java ProgressBar导致setMax方法出现NullPointerException?   带有google app engine的java Activator Play框架   java如何解析星级而不是字符串?   java如何在基本实体中定义通用主键字段?   通过扩展实现Java克隆   使用CipherOutputStream的java递归加密提供一个空字节[]   在运行时提取字段值的Java服务   Java 11和spring boot从spring boot应用程序的fat jar中的依赖项jar加载资源   java尝试使用J2SE枚举所有可用的Wifi网络   使用Java库进行SWIFT MT消息解析   java拆分非逗号分隔的字符串   java为什么toString()不能是静态方法?   java在连接到集群数据库时遇到mongo异常   java访问Hashmap中存储的json有效负载值