ClientAliveInterval
,指定了服务器端向客户端请求消息的时间间隔, 默认是0,不发送。
每一分钟,sshd都和ssh client打个招呼,检测它是否存在,不存时即断开连接。
ClientAliveInterval=60,将后面的数值设置修改,单位为秒,如10分钟,则可写600 。ClientAliveCountMax
,指如果发现客户端没有相应,则判断一次超时,这个参数设置允许超时的次数,比如10。
两个设置合起来,则代表允许超时 6000秒 = 100分钟。
按理说没问题啊?现在早就超过100分钟了。。。但它还是断。。。
/etc/ssh/sshd_config
TCPKeepAlive yes
前一个参数表示要保持TCP连接,后一个参数表示客户端的SSH连线闲置多长时间后自动终止连线的数值,单位为分钟。
2、重启sshd生效:
执行service sshd reload就能永远连接了!棒棒棒!
安装django,能够运行
pip3 install Django -i https://pypi.tuna.tsinghua.edu.cn/simple
容器开放端口,实时修改比较难啊,基本没有改动的可能,必须一开始就在docker-compose写明。
ports:
- "8848:8848"
路径不对 /root/anaconda3
创建新工程!
django-admin.py startproject myspeech
cd myspeech
python manage.py migrate
python manage.py runserver 0.0.0.0:8848
域访问不允许,需要修改域
编辑目录下setting.py ,把其中的
ALLOWED_HOSTS=[]改成ALLOWED_HOSTS=['*'] ##* 表示任意地址。
接下来修改服务,新版url参考写法:
from django.urls import path
from . import view
urlpatterns = [
path('', view.hello),
path('world/', view.world)
]
如果是 Django >= 2.0 的版本,path() 函数无法匹配正则表达式,需要使用 re_path() 即可匹配正则表达式
re_path(r'^hello$',view.hello),
单纯后端着实没什么问题。
但这里呢,就没有什么view,只有serve了
api设计呢,古诗语音就放在这里
poetrys/jing_ye_si
然后音色上传
tone/
文字上传
text/
语音下载
vioce/
完成
文件规划呢,
poetrys 是古诗wav
tone/test.xvector,对吧,放着这个,一开始是我的。。。
asr也没给我。。。
注意是在opt/kaldi上的
可算TM装完了。。。赶紧保存
基本搭建完毕,现在进行交互。现在是前端的问题了。
添加静态资源。
会有一个相对路径的问题。。。一旦调用了之后,就是上一层的东西了,这个怎么办?
这个模块是怎么回事啊。。。
调用文件与模块同级目录,写一个init.py,调用即可。
如果执行文件和模块不在同一目录,这时候直接import是找不到自定义模块的。
# main.py
# -*- coding: utf-8 -*-
import sys
sys.path.append("./myspeech/TensorflowTTS")
import pwcong
pwcong.hi()
这这这。。。成功初始化了,现在看看语音有没有。。。。
自从在myspeech启动python,那么路径就只是这里的了。所有的引用的py文件都是这里的路径了,必须予以改变。
绝了,绝对路径吧。。
/www/myspeech/myspeech/Tensorl
我认为卡住是docker的事情,多试几次就好了。。。它应该是docker自己的事情,太长了就卡住。。。
默认设置下,所有容器可以平等地使用主机 CPU 资源并且没有限制,硬盘应该也是没限制的。那么现在是在干嘛呢。。。貌似是docker运行太严重导致输入卡顿,而不是它偶尔卡顿。。。
Allocation of 8388608 exceeds 10% of free system memory.硬盘不够?没办法,啊,只能。。。
性能限制,卧槽,那么只能,太慢了,只能用screen来做了。用tmux
离开 ctrl b d
查看 tmux ls
进入tmux attach -t 0
杀死tmux kill-session -t 0
好吧,慢慢搞吧。。。
改变容器名字,docker rename 容器原来名 要改为的名字
看来得复制一份才好。。。
不管哪里有错,反正能正常合成的。
现在尝试将东西放到test1/myspeech中
看来不行,现在放到上一层文件夹。那么serve.py如何调用上一层的tts.py呢?
可算成功了。。。但是端口映射不太好,重新开一个。
没办法。。。它在公网上访问不了。。。
docker login --username=heroisuseheroisuseless registry.cn-hangzhou.aliyuncs.com
原来如此,端口不能为127...,这是本地环回。。。
人家的服务器不行,恐怕人家的是有防火墙的。
现在怎么搞呢?基本上没问题了啊。。。整理呗
首先重命名,进行修剪,
看来关掉原有服务器确实能加快速度。关了服务器至少不卡住了。。。
只用了一半,说明叠加式是省空间的,挺好。
现在修改一下内部环境。
对于导入的模块,里面的全局变量,
这个打开的延时就是temsorflow的延时,那个模型的装载,是分配内存的延时。
它会有大概1秒的延时。。。
接下来写个html。。。
就算那个模型没有,我也可以留下接口就行了。好好设计一下。
诗歌选择什么?10句话吧。
1. (女)也许冬天的冰雪会覆满我的心,也许我走不出痛苦的心境。
2. (女)于是我会放一把火,烧尽冰雪,烧出另一个春天。
3. (女)万里悲秋常作客,百年多病独登台。
4. (女)世界上最遥远的距离,不是生与死,而是我就站在你面前,你却不知道我爱你。
5. (女)远看山有色,近听水无声。春去花还在,人来鸟不惊。
6. (男)也许冬天的冰雪会覆满我的心,也许我走不出痛苦的心境。
7. (男)于是我会放一把火,烧尽冰雪,烧出另一个春天。
8. (男)万里悲秋常作客,百年多病独登台。
9. (男)世界上最遥远的距离,不是生与死,而是我就站在你面前,你却不知道我爱你。
10. (男)远看山有色,近听水无声。春去花还在,人来鸟不惊。
女男声两种,用12345表示。
在线播放,用一个控件即可。甚至说用下面那个控件,对吧。
它会重新提交。。。好的,慢慢做。。。要不要做得更好看一些?
差不多就行了。接下来,要么更精致一些,要么,我就是想先合成这些语音。。。按理说,这个before跟after也没有太大区别,听听再定夺吧。
docker也不能叫kaldi_test啊,要叫myspeech,改名字!但诗歌完事再说,完成。
音色的叫tone,合成音叫voice
还是先把tone接口搞好吧。注意来了之后改一下数据。
发送get还是post呢?post吧,还是get吧,get比较方便。成功!
xvector放到哪里,用什么名字?
放到xvector文件夹中,用vioce.npy呗。
现在找一个好的模型,这个模型就不要放到那么偏远的位置吧。。。而且还要注意config是否一致,都放进去吧。
这个貌似没改啊。。。卧槽,真是噩耗,是我没改。。。但是无伤大雅吧。conf只要小小改动一下即可。
基本可以了,再打包一次吧。打包成功,现在再优化一下tone,然后做html了。
tone转码成功了,接下来就是一个简单的加入就可以了。接下来干嘛呢?做前端。