繁体   English   中英

星号无法使用python运行agi脚本

[英]Asterisk cannot run agi script with python

我创建了python脚本来运行一些任务。 当我通过python编译执行此脚本时,它的工作就像一个魅力。

python test.py

但是,当我从Asterisk agi调用test.py时,无法获得时间戳。

exten => 201,n,agi(test.py,"おはようございます")

test.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
from datetime import datetime
import time
import sys
#from asterisk.agi import *

#agi = AGI()
#agi.verbose("python agi started")
#agi.verbose("params : " +agi.env['agi_arg_1'])

open_jtalk = ['open_jtalk']
mech = ['-x', '/home/linuxbrew/.linuxbrew/Cellar/open-jtalk/1.10_1/dic']
htsvoice = ['-m', '/home/linuxbrew/.linuxbrew/Cellar/open-jtalk/1.10_1/voice/mei/mei_normal.htsvoice']
speed = ['-r', '1.0']

print "nothing to lose"
timestamp = int(round(time.time() * 1000))
print "time : " + timestamp
file_name = 'tts_output' + str(timestamp) + '.wav'
file_name_output = 'tts_output' + str(timestamp) + '_8000.wav'
outwav = ['-ow', '/var/lib/asterisk/agi-bin/' + file_name]
cmd = open_jtalk + mech + htsvoice + speed + outwav
print "cmd : "
c = subprocess.Popen(cmd, stdin=subprocess.PIPE)
c.stdin.write("おはようございます")
c.stdin.close()
c.wait()

print "AAAAAAA"
#agi.verbose("command line is completed")

sox = ['sox']
samplerate = ['-r', '8000']
file_input = [file_name]
file_output = [file_name_output]
sox_command = sox  + file_input + samplerate + file_output
ds = subprocess.Popen(sox_command)
ds.wait()

当运行test.py时,控制台将输出“没什么可丢失的”,但是下一条命令不能执行。

timestamp = int(round(time.time() * 1000))

有人能帮我吗? 任何帮助将不胜感激!

>>> import time
>>> timestamp = int(round(time.time() * 1000))
>>> print "time : " + timestamp
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

尝试print "time : {}".format(timestamp)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM