Spaces:
Sleeping
Sleeping
File size: 2,500 Bytes
a3431d8 042f51e 9180f22 41f9c0c a3431d8 042f51e a3431d8 41f9c0c f71c727 518eeee 0cf71d2 042f51e a3431d8 042f51e a3431d8 042f51e 9180f22 f71c727 41f9c0c a3431d8 41f9c0c 042f51e 1fc1917 f71c727 41f9c0c 042f51e 1fc1917 518eeee f71c727 042f51e f71c727 518eeee 042f51e 518eeee 0cf71d2 042f51e 0cf71d2 042f51e 0cf71d2 41f9c0c 9180f22 a3431d8 9180f22 a3431d8 41f9c0c 9180f22 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
from flask import Flask, render_template, request, redirect, url_for, jsonify
from gtts import gTTS
import os
app = Flask(__name__)
# 音声ファイルの保存ディレクトリ
AUDIO_DIR = 'static/audio'
# リストに変換
english_sentences_A = list(translation_dict_A.keys())
english_sentences_B = list(translation_dict_B.keys())
english_sentences_C = list(translation_dict_C.keys())
english_sentences_D = list(translation_dict_D.keys())
english_sentences_F = list(translation_dict_F.keys())
english_sentences_G = list(translation_dict_G.keys())
# 音声ファイルを生成する関数
def generate_audio(text, set_name, index):
filename = f"{AUDIO_DIR}/{set_name}_{index}.mp3"
# ファイルが存在しない場合のみ生成
if not os.path.exists(filename):
tts = gTTS(text=text, lang='en')
tts.save(filename)
return filename
# フラッシュカードの内容をJSONで返す
@app.route('/flashcards')
def index():
set_name = request.args.get('set', 'A')
index = int(request.args.get('index', 0))
if set_name == 'A':
english = english_sentences_A[index]
japanese = translation_dict_A[english]
total = len(english_sentences_A)
elif set_name == 'B':
english = english_sentences_B[index]
japanese = translation_dict_B[english]
total = len(english_sentences_B)
elif set_name == 'C':
english = english_sentences_C[index]
japanese = translation_dict_C[english]
total = len(english_sentences_C)
elif set_name == 'D':
english = english_sentences_D[index]
japanese = translation_dict_D[english]
total = len(english_sentences_D)
elif set_name == 'F':
english = english_sentences_F[index]
japanese = translation_dict_F[english]
total = len(english_sentences_F)
elif set_name == 'G':
english = english_sentences_G[index]
japanese = translation_dict_G[english]
total = len(english_sentences_G)
# 音声ファイルの生成
audio_url = url_for('static', filename=f"audio/{set_name}_{index}.mp3")
generate_audio(english, set_name, index)
# フラッシュカードの情報をJSONで返す
return jsonify({
'set_name': set_name,
'index': index,
'total': total,
'english': english,
'japanese': japanese,
'audio_url': audio_url
})
if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0", port=7860) |