englissi commited on
Commit
221c52d
ยท
verified ยท
1 Parent(s): ad78d96

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -19
app.py CHANGED
@@ -1,7 +1,10 @@
1
  import os
2
- import asyncio
3
- import edge_tts
4
  import gradio as gr
 
 
 
 
 
5
 
6
  # ์Šคํ† ๋ฆฌ ๋ฐ์ดํ„ฐ (ํ…์ŠคํŠธ + ์ด๋ฏธ์ง€ URL ํฌํ•จ)
7
  image_base_url = "https://huggingface.co/spaces/englissi/englishstories/resolve/main/image/"
@@ -18,25 +21,15 @@ stories = [
18
  {"text": "Fun in the sun is the best!", "image": f"{image_base_url}10.webp"}
19
  ]
20
 
21
- # Edge TTS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Œ์„ฑ ํŒŒ์ผ ์ƒ์„ฑ (๋น„๋™๊ธฐ ํ•จ์ˆ˜)
22
- async def generate_audio_async(text, filename="story.mp3"):
23
  try:
24
- voice = "en-US-OliviaNeural" # Olivia ์–ด๋ฆฐ์ด ๋ชฉ์†Œ๋ฆฌ (๋ฏธ๊ตญ์‹)
25
- tts = edge_tts.Communicate(text, voice)
26
- await tts.save(filename)
27
  except Exception as e:
28
  print("TTS ์ƒ์„ฑ ์˜ค๋ฅ˜:", e)
29
  return filename
30
 
31
- # Gradio์™€ ์—ฐ๋™์„ ์œ„ํ•ด ๋™๊ธฐ ํ•จ์ˆ˜๋กœ ๋ณ€ํ™˜
32
- def generate_audio(text, filename="story.mp3"):
33
- try:
34
- asyncio.run(generate_audio_async(text, filename))
35
- return filename
36
- except Exception as e:
37
- print("์˜ค๋ฅ˜ ๋ฐœ์ƒ:", e)
38
- return None
39
-
40
  # ์Šคํ† ๋ฆฌ ํ…์ŠคํŠธ๋ฅผ HTML ์Šคํƒ€์ผ๋กœ ํฌ๊ฒŒ ํ‘œ์‹œํ•˜๊ณ  ์ค‘์•™ ์ •๋ ฌํ•˜๋Š” ํ•จ์ˆ˜
41
  def format_story_text(text):
42
  return f"""
@@ -58,7 +51,7 @@ def init_story():
58
  story = stories[index]
59
  text = story["text"]
60
  image = story["image"]
61
- audio_file = generate_audio(text, filename="story.mp3")
62
  return index, text, image, audio_file
63
 
64
  # "๋‹ค์Œ" ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜
@@ -67,12 +60,12 @@ def next_story(current_index):
67
  story = stories[new_index]
68
  text = story["text"]
69
  image = story["image"]
70
- audio_file = generate_audio(text, filename="story.mp3")
71
  return new_index, format_story_text(text), image, audio_file, text
72
 
73
  # "์žฌ์ƒ" ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜
74
  def play_story(current_text):
75
- audio_file = generate_audio(current_text, filename="story.mp3")
76
  return audio_file
77
 
78
  # ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ์„ค์ •
 
1
  import os
 
 
2
  import gradio as gr
3
+ from TTS.api import TTS
4
+
5
+ # Coqui TTS ๋ชจ๋ธ ์„ค์ • (jenny ์Œ์„ฑ)
6
+ TTS_MODEL = "tts_models/en/jenny/jenny"
7
+ tts = TTS(model_name=TTS_MODEL)
8
 
9
  # ์Šคํ† ๋ฆฌ ๋ฐ์ดํ„ฐ (ํ…์ŠคํŠธ + ์ด๋ฏธ์ง€ URL ํฌํ•จ)
10
  image_base_url = "https://huggingface.co/spaces/englissi/englishstories/resolve/main/image/"
 
21
  {"text": "Fun in the sun is the best!", "image": f"{image_base_url}10.webp"}
22
  ]
23
 
24
+ # ์Œ์„ฑ ํŒŒ์ผ ์ƒ์„ฑ ํ•จ์ˆ˜ (Coqui TTS ์ด์šฉ)
25
+ def generate_audio(text, filename="story.wav"):
26
  try:
27
+ tts.tts_to_file(text, file_path=filename)
28
+ print(f"โœ… ์Œ์„ฑ ํŒŒ์ผ ์ƒ์„ฑ ์™„๋ฃŒ: {filename}")
 
29
  except Exception as e:
30
  print("TTS ์ƒ์„ฑ ์˜ค๋ฅ˜:", e)
31
  return filename
32
 
 
 
 
 
 
 
 
 
 
33
  # ์Šคํ† ๋ฆฌ ํ…์ŠคํŠธ๋ฅผ HTML ์Šคํƒ€์ผ๋กœ ํฌ๊ฒŒ ํ‘œ์‹œํ•˜๊ณ  ์ค‘์•™ ์ •๋ ฌํ•˜๋Š” ํ•จ์ˆ˜
34
  def format_story_text(text):
35
  return f"""
 
51
  story = stories[index]
52
  text = story["text"]
53
  image = story["image"]
54
+ audio_file = generate_audio(text, filename="story.wav")
55
  return index, text, image, audio_file
56
 
57
  # "๋‹ค์Œ" ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜
 
60
  story = stories[new_index]
61
  text = story["text"]
62
  image = story["image"]
63
+ audio_file = generate_audio(text, filename="story.wav")
64
  return new_index, format_story_text(text), image, audio_file, text
65
 
66
  # "์žฌ์ƒ" ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜
67
  def play_story(current_text):
68
+ audio_file = generate_audio(current_text, filename="story.wav")
69
  return audio_file
70
 
71
  # ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ์„ค์ •