失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 从零开始搭建属于自己的语音识别API服务器(ASRT开源项目)

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

时间:2024-01-10 06:16:17

相关推荐

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

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

材料准备

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

环境搭建

1. Python 3.7

话不多说直接上代码

sudo suyum -y install gityum -y install gccyum -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-develwget /ftp/python/3.7.3/Python-3.7.3.tgztar -zxvf Python-3.7.3.tgzmkdir /usr/local/python3cd Python-3.7.3./configure --prefix=/usr/local/python3make && make installln -s /usr/local/python3/bin/python3.7 /usr/bin/python3ln -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.1astor==0.8.0certifi==.9.11cycler==0.10.0gast==0.2.2google-pasta==0.1.7grpcio==1.24.1h5py==2.10.0Keras-Applications==1.0.8Keras-Preprocessing==1.1.0kiwisolver==1.3.1Markdown==3.1.1matplotlib==3.4.2numpy==1.17.2opt-einsum==3.1.0Pillow==8.2.0protobuf==3.10.0pyparsing==2.4.7python-dateutil==2.8.1python-speech-features==0.6scipy==1.6.3six==1.12.0tensorboard==2.0.0tensorflow-estimator==2.0.0tensorflow==2.0.0termcolor==1.1.0Werkzeug==0.16.0wrapt==1.11.2Keras==2.2.4tensorflow-cpu==1.4.0

保存之后,输入pip3 install -r libs.txt回车

然后,见证奇迹,如果没报错,恭喜你,环境已经配置成功了

如果。。。呸呸呸!哪有那么多如果o(´^`)o

下载ASRT开源项目

cd ..wget /asrt_released/ASRT_v0.6.1.zipyum install -y unzipunzip ASRT_v0.6.1.zipcd ASRT_v0.6.1

运行API服务器

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

yum install screenscreen -S ASRT_1

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

python3 asrserver.py

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

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

配置开放20000端口

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

保存后就搭建完成了

API测试

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

访问到的界面如下:

则证明API部署成功

接下来测试一下API效果

打开API测试工具,根据使用说明操作。

测试工具免费下载

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

测试代码如下:

#!/usr/bin/env python3# -*- coding: utf-8 -*-import waveimport numpy as npimport requestsdef main():url = '/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开源项目)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。