gTTS.say(text)接受字符串



我正在尝试使用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>

最新更新