我正在尝试使用Django创建一个网站,将一些文本作为输入并将其转换为音频。
我创建了一个空数组,用于存储输入的值并将其转换为音频。但是当我运行服务器时,它给了我一个错误说-gTTS.say(text) takes string.
我views.py
#An empty array called textForTts
textForTts = []
class UploadFileForm(forms.Form):
tts = forms.CharField(label = "Convert text to audio here")
def index(request):
if request.method == "POST":
form = UploadFileForm(request.POST)
if form.is_valid():
tts = form.cleaned_data["tts"]
textForTts.append(tts)
obj = say(language='en-us', text= textForTts)
return render(request,'demo/website.html',{
"form" : UploadFileForm(),
'obj':obj
})
我的index . html。
{% block body %}
{% load gTTS %}
<form method="post">
{% csrf_token %}
<audio
src = "{{obj}}"
controls
></audio>
{{form}}
<input type = "submit">
</form>
{% endblock %}
这是我第一次使用Django。我应该做些什么来修复我的错误?
提前感谢。
你使用django - gts吗?在Django模板中调用say
的正确形式是:
{% load gTTS %}
<audio
src="{% say 'en-us' 'text to say' %}"
controls
></audio>
我建议这样重构你的视图:
return render(request, "demo/website.html", {
"form": UploadFileForm(),
"lang": "en-us",
"text": "text to say",
})
这将允许你在Django模板中这样调用say:
{% load gTTS %}
<audio
src="{% say lang text %}"
controls
></audio>