首先要明确一点,这个搭建的是自己的API服务器;不是什么科大讯飞、百度语音这种付费API,而且那是直接使用别人的API,这是搭建自己的API,相比之下还是有区别的

材料准备

云服务器 (本人使用的的是阿里云服务器 Ubuntu(Linux操作系统))

环境搭建

1. Python 3.7

话不多说直接上代码

sudo su
yum -y install git
yum -y install gcc
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgztar -zxvf Python-3.7.3.tgzmkdir /usr/local/python3
cd Python-3.7.3
./configure --prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

到这里python 3.7 的环境搭建完毕

测试一下

输入python3回车

ctrl+Z 退出python编辑器

2. 使用pip3一键安装其他环境

在当前所在的目录下新建一个libs.txt文件
libs.txt文件中内容如下:

absl-py==0.8.1
astor==0.8.0
certifi==2019.9.11
cycler==0.10.0
gast==0.2.2
google-pasta==0.1.7
grpcio==1.24.1
h5py==2.10.0
Keras-Applications==1.0.8
Keras-Preprocessing==1.1.0
kiwisolver==1.3.1
Markdown==3.1.1
matplotlib==3.4.2
numpy==1.17.2
opt-einsum==3.1.0
Pillow==8.2.0
protobuf==3.10.0
pyparsing==2.4.7
python-dateutil==2.8.1
python-speech-features==0.6
scipy==1.6.3
six==1.12.0
tensorboard==2.0.0
tensorflow-estimator==2.0.0
tensorflow==2.0.0
termcolor==1.1.0
Werkzeug==0.16.0
wrapt==1.11.2
Keras==2.2.4
tensorflow-cpu==1.4.0

保存之后,输入 pip3 install -r libs.txt 回车
然后,见证奇迹,如果没报错,恭喜你,环境已经配置成功了
如果。。。呸呸呸!哪有那么多如果 o(´^`)o

下载ASRT开源项目

cd ..
wget https://d.ailemon.net/asrt_released/ASRT_v0.6.1.zip
yum install -y unzip
unzip ASRT_v0.6.1.zip
cd ASRT_v0.6.1

运行API服务器

让项目可以在后台一直运行

yum install screen
screen -S ASRT_1

在打开的新窗口中输入以下代码运行服务器

python3 asrserver.py


出现图中服务器已开启则证明服务器已成功运行

这时候点击 ctrl+A+D 键,在不关闭该程序的情况下离开该窗口

配置开放20000端口

这个开放的端口号需要到asrserver.py文件中修改(默认是20000)



保存后就搭建完成了

API测试

  1. 打开浏览器,访问http://xxx.xxx.xxx.xxx:20000/ (前面的XXX是您服务器的IPV4地址)
    访问到的界面如下:

    则证明API部署成功

  2. 接下来测试一下API效果
    打开API测试工具,根据使用说明操作。

    测试工具免费下载

  3. 使用项目testClient.py代码,上传指定路径音频转文字测试

测试代码如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-import wave
import numpy as np
import requestsdef main():url = 'https://api.ailemon.net/asrt/v1/'   # 测试API接口地址,如果使用自己的请注释# url = 'http://127.0.0.1:666/'# url = 'http://xxx.xxx.xxx.xxx:20000/'    # 修改为自己的API接口,并取消注释token = 'qwertasd'wavsignal, fs = read_wav_data('D:\\lfasr.wav')  # 音频文件路径print(wavsignal, fs)datas = {'token': token, 'fs': fs, 'wavs': wavsignal}print("类型:", type(datas))print("datas:", datas)r = requests.post(url, datas)r.encoding = 'utf-8'print("识别结果:", r.text)def read_wav_data(filename):'''读取一个wav文件,返回声音信号的时域谱矩阵和播放时间'''wav = wave.open(filename, "rb")  # 打开一个wav格式的声音文件流num_frame = wav.getnframes()  # 获取帧数num_channel = wav.getnchannels()  # 获取声道数framerate = wav.getframerate()  # 获取帧速率num_sample_width = wav.getsampwidth()  # 获取实例的比特宽度,即每一帧的字节数str_data = wav.readframes(num_frame)  # 读取全部的帧wav.close()  # 关闭流wave_data = np.frombuffer(str_data, dtype=np.short)  # 将声音文件数据转换为数组矩阵形式wave_data.shape = -1, num_channel  # 按照声道数将数组整形,单声道时候是一列数组,双声道时候是两列的矩阵wave_data = wave_data.T  # 将矩阵转置# wave_data = wave_datareturn wave_data, framerateif __name__ == '__main__':main()

测试结果如下:

从零开始搭建属于自己的语音识别API服务器(ASRT开源项目)相关推荐

  1. 从零开始搭建Node.js, Express, Ejs, Mongodb服务器

    http://www.toolmao.com/nodejs-express-ejs-mongodb-server 本文改自非鱼的<[翻译]前端开发人员入门指南,从零开始搭建Node.js, Ex ...

  2. 从零开始搭建仿抖音短视频APP-构建后端项目

    项目持续创作中... ​​​​​​仿抖音短视频APP项目专栏 目录 聚合工程 构建父工程 构建子工程 构建接口工程并且暴露api接口 优雅Restful相应封装 Lombok与多环境profile 数 ...

  3. python3语音识别模块_『开源项目』基于STM32的智能垃圾桶之语音识别

    大家好,我是『芯知识学堂』的SingleYork,前面给大家简单介绍了『开源项目』基于STM32的智能垃圾桶之成员简介,相信有很多小伙伴都已经忍不住跃跃欲试了,别着急,从这一篇开始,笔者将会带领大家一 ...

  4. 【从零开始搭建自己的.NET Core Api框架】(二)搭建项目的整体架构

    系列目录 一.  创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架--SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...

  5. 从零开始搭建spring-cloud(5) ----zuul

    撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> zuul是什么 zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web ser ...

  6. armbian nginx 部署博客_从零开始搭建服务器之更加优雅地部署项目

    如果你需要经常性需要多处部署同样的项目,如果你曾经也遇到过"*明明在我电脑运行得好好的"问题,如果听说过 Docker 但还没用过,如果你不确定你到底需不需要 Docker ,那么 ...

  7. 常见的嵌入式端流媒体服务器开源项目!

    大家好,今天给大家汇总一些在嵌入式里面常见的流媒体服务器,在以往也有给大家简单提过,今天做一个汇总!希望对大家有用! 常见的流媒体服务器开源项目汇总: 1.srs: 官网: https://ossrs ...

  8. 【迷你强的物联网】起始篇-简介与MQTT服务器【从零开始搭建自己的物联网系统】

    简介 此为系列文章,主要写什么是物联网,当然啦,这个概念过于抽象,所以我会从自己动手构建出一个完整的物联网系统这个方式来折腾.   这个项目也会是一个连载项目,完成一部分就会发布出来,会同步更新于工坊 ...

  9. 在阿里云服务器(ECS)上从零开始搭建nginx服务器

    本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器.阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以到http://www.aliyun.com/product/ecs去购买,或到体验 ...

最新文章

  1. iOS-ARC_Xcode检测循环引用
  2. 对于多表查询和转账的事务提交
  3. C# 调用 Microsoft.VisualBasic.Collection
  4. eslint 快捷键设置_eslint的妙用和快捷修复
  5. Datawhale 202210 Excel | 第五、六、七章 Excel函数示例 Excel函数列表
  6. SpringBoot使用LibreOffice--office转pdf
  7. 【2016.11.10】百度云离线下载迅雷链接
  8. 在windows平台上打造Linux开发环境-洋葱先生-杨少通
  9. 百度地图获取经纬度后,获取区域代码和地址
  10. 携程PMO | 小罗说敏捷-WIP限制在制品
  11. 数据结构课程设计——通讯录管理系统
  12. 通讯录——C语言实现
  13. 为什么Java的图标是一杯咖啡呢?
  14. mos管结电容等效模型_详解各元器件等效电路_电阻、电容、电感、二极管、MOS管...
  15. pcm vlc 文件_VLC播放pcm
  16. 云计算除了具有极高的市场效益外,简化企业IT运营、内置安全和易于部署等优势非常明显
  17. 服务器端分层架构(丛林战争项目)
  18. php+redis 盲盒字符兑换道具
  19. 《学习笔记》------温故而知新
  20. mysql事务处理银行转账模拟提交以及回滚

热门文章

  1. HTML 动态爱心代码
  2. 10次机会 js 猜数_JS猜数字游戏实例讲解
  3. 开始着手用Python写一个游戏脚本(一)
  4. 苹果副总裁开豪车载美女“口嗨”视频火了!库克看到气炸光速开除
  5. 安卓手机ROM之 DIY纪实
  6. 一些有意思的 GitHub 项目
  7. 在xml 中如何换行
  8. 异常和单例模式 学习内容
  9. 自定义Camera系列之:TextureView + Camera
  10. K8S keepalive+haproxy 实现集群高可用