«расположение контента» в iOS + Google Chrome [Flask в Google App Engine] - PullRequest
0 голосов
/ 21 января 2020

Я новичок в кодировании. Я хотел бы создать простое веб-приложение, использующее Google Cloud Text to Speech API.

  1. веб-сайт с текстовым полем
  2. , введите предложение в текстовое поле и щелкните Нажав кнопку «Отправить»
  3. , вы можете загрузить 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), я вижу эту простую форму. form

Шаг 2: Я ввожу текст и пу sh «отправить». submit

Шаг 3: Загрузить mp3-файл в локальную папку загрузки. download

С iPhone10 Chrome:

Step1 и 2 такие же, как P C Chrome

Step3: Загрузка не выполняется не начинай Я хочу, чтобы mp3-файл загружался в приложении «Файлы» (приложение для управления файлами iPhone). enter image description here

Я подумал, что это проблема 'content-disposition', поэтому я искал "content-disposition on iOS". Однако я не смог получить ответ.

Не могли бы вы дать мне какую-либо информацию или предложение?

Заранее спасибо.

С уважением, Казу

1 Ответ

0 голосов
/ 22 января 2020

Я попробовал Safafi вместо Chrome, и он отлично работал!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...