Я новичок в кодировании. Я хотел бы создать простое веб-приложение, использующее Google Cloud Text to Speech API.
- веб-сайт с текстовым полем
- , введите предложение в текстовое поле и щелкните Нажав кнопку «Отправить»
- , вы можете загрузить mp3-файл, созданный Google Cloud Text для Speech API
Я учитель английского языка в Англии, так что я бы хотел Я хотел бы, чтобы мои студенты использовали этот веб-сайт для улучшения своего английского sh произношения.
Во-первых, я хотел бы показать вам свой код. Я использую Flask в стандартной среде Google App Engine Python3 .7.
Это структура каталогов.
.
├── app.yaml
├── credentials.json
├── main.py
├── requirements.txt
└── templates
└── index.html
Это main.py.
from flask import Flask
from flask import render_template
from flask import request
from flask import send_file
import os
from google.cloud import texttospeech
app = Flask(__name__)
@app.route("/", methods=['POST', 'GET'])
def index():
if request.method == "POST":
text = request.form['text']
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="credentials.json"
client = texttospeech.TextToSpeechClient()
input_text = texttospeech.types.SynthesisInput(text=text)
voice = texttospeech.types.VoiceSelectionParams(
language_code='en-US',
name='en-US-Wavenet-A')
audio_config = texttospeech.types.AudioConfig(
audio_encoding=texttospeech.enums.AudioEncoding.MP3)
response = client.synthesize_speech(input_text, voice, audio_config)
# The response's audio_content is binary.
with open('/tmp/output.mp3', 'wb') as out:
out.write(response.audio_content)
return send_file("/tmp/output.mp3",as_attachment=True)
else:
return render_template("index.html")
if __name__ == "__main__":
app.run()
Это индекс. html
<html>
<head>
<title>practice pronunciation</title>
<style>
#text {width: 100%; height: 300px;}
</style>
</head>
<body>
<h1>Let's practice pronunciation!</h1>
<form action="/" method="POST">
<textarea id="text" name="text" placeholder="Type some text here..."></textarea>
<br/>
<input type="submit">
</form>
</body>
</html>
Это файл needs.txt.
Flask==1.1.1
future==0.18.2
google-cloud-texttospeech==0.5.0
grpcio==1.26.0
gunicorn
Это app.yaml.
runtime: python37
entrypoint: gunicorn -b :$PORT main:app
Когда я получил доступ к своему приложению через P C (Google Chrome на Windows10), оно работало отлично. Однако когда я получил доступ к своему веб-приложению с iPhone10 (Google Chrome), загрузка не началась.
От P C Chrome:
Шаг 1: Если я ввожу URL-адрес моего приложения в браузере (Google Chrome на Windows10), я вижу эту простую форму.
Шаг 2: Я ввожу текст и пу sh «отправить».
Шаг 3: Загрузить mp3-файл в локальную папку загрузки.
С iPhone10 Chrome:
Step1 и 2 такие же, как P C Chrome
Step3: Загрузка не выполняется не начинай Я хочу, чтобы mp3-файл загружался в приложении «Файлы» (приложение для управления файлами iPhone).
Я подумал, что это проблема 'content-disposition', поэтому я искал "content-disposition on iOS". Однако я не смог получить ответ.
Не могли бы вы дать мне какую-либо информацию или предложение?
Заранее спасибо.
С уважением, Казу