gTTS.say(text) 接受字符串
gTTS.say(text) takes string
我正在尝试使用 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-Gtts,对吧?据我所知,在 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>
我正在尝试使用 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-Gtts,对吧?据我所知,在 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>