Skip to content

An AI-powered tool for translating and adapting lyrics between J-POP and K-POP. Using LLM prompting techniques, it bridges linguistic and cultural gaps while preserving the essence of the music. It fosters musical exchange between the two cultures through creative adaptations that consider both meaning and rhythm of the lyrics. ๐ŸŽต๐Ÿ‡ฏ๐Ÿ‡ตโžก๏ธ๐Ÿ‡ฐ๐Ÿ‡ท๐ŸŽค

Notifications You must be signed in to change notification settings

purang2/J-POP-CrossFade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

33 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

iPhone-12-(iOS-14)-j-pop-crossfade streamlit app

AI ๊ธฐ๋ฐ˜์˜ J-POP โ†”๏ธ K-POP ๊ฐ€์‚ฌ ๋ฒˆ์—ญ ๋ฒˆ์•ˆ ๋ฐ ๊ฐ์ƒ‰ ๋„๊ตฌ

LLM ํ”„๋กฌํ”„ํŒ… ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ธ์–ด์ , ๋ฌธํ™”์  ์ฐจ์ด๋ฅผ ๊ทน๋ณตํ•˜๋ฉด์„œ๋„ ์Œ์•…์˜ ๋ณธ์งˆ์„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค.

ํ•œ๊ตญ์–ด:

AI ๊ธฐ๋ฐ˜์˜ J-POP <--> K-POP ๊ฐ€์‚ฌ ๋ฒˆ์—ญ ๋ฐ ๊ฐ์ƒ‰ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. LLM ํ”„๋กฌํ”„ํŒ… ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ธ์–ด์ , ๋ฌธํ™”์  ์ฐจ์ด๋ฅผ ๊ทน๋ณตํ•˜๋ฉด์„œ๋„ ์Œ์•…์˜ ๋ณธ์งˆ์„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์‚ฌ์˜ ์˜๋ฏธ์™€ ์šด์œจ์„ ๊ณ ๋ คํ•œ ์ฐฝ์˜์ ์ธ ๋ฒˆ์•ˆ์œผ๋กœ, ๋‘ ๋ฌธํ™” ๊ฐ„์˜ ์Œ์•…์  ๊ต๋ฅ˜๋ฅผ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค. ๐ŸŽต๐Ÿ‡ฏ๐Ÿ‡ตโžก๏ธ๐Ÿ‡ฐ๐Ÿ‡ท๐ŸŽค

ๆ—ฅๆœฌ่ชž:

J-POP ใจ K-POP ใฎๆญŒ่ฉžใ‚’็›ธไบ’ใซ็ฟป่จณใƒป่„š่‰ฒใ™ใ‚‹ AI ใƒ™ใƒผใ‚นใฎใƒ„ใƒผใƒซใงใ™ใ€‚LLM ใƒ—ใƒญใƒณใƒ—ใƒ†ใ‚ฃใƒณใ‚ฐๆŠ€่ก“ใ‚’ไฝฟ็”จใ—ใ€่จ€่ชž็š„ใƒปๆ–‡ๅŒ–็š„ใช้•ใ„ใ‚’ๅ…‹ๆœใ—ใชใŒใ‚‰ใ‚‚้Ÿณๆฅฝใฎๆœฌ่ณชใ‚’ไฟใกใพใ™ใ€‚ๆญŒ่ฉžใฎๆ„ๅ‘ณใจใƒชใ‚บใƒ ใ‚’่€ƒๆ…ฎใ—ใŸๅ‰ต้€ ็š„ใช็ฟปๆกˆใซใ‚ˆใ‚Šใ€ไธกๆ–‡ๅŒ–้–“ใฎ้Ÿณๆฅฝไบคๆตใ‚’ไฟƒ้€ฒใ—ใพใ™ใ€‚๐ŸŽต๐Ÿ‡ฏ๐Ÿ‡ตโžก๏ธ๐Ÿ‡ฐ๐Ÿ‡ท๐ŸŽค

์ฃผ์š” ํŠน์ง•

  • ๐Ÿ‡ฏ๐Ÿ‡ตโžก๏ธ๐Ÿ‡ฐ๐Ÿ‡ท J-POP์—์„œ K-POP์œผ๋กœ ๊ฐ€์‚ฌ ๋ฒˆ์—ญ
  • ๐Ÿ‡ฐ๐Ÿ‡ทโžก๏ธ๐Ÿ‡ฏ๐Ÿ‡ต K-POP์—์„œ J-POP์œผ๋กœ ๊ฐ€์‚ฌ ๋ฒˆ์—ญ
  • ๐ŸŽผ ์šด์œจ๊ณผ ์˜๋ฏธ๋ฅผ ๋ชจ๋‘ ๊ณ ๋ คํ•œ ์ฐฝ์˜์  ๊ฐ์ƒ‰
  • ๐Ÿค– ์ตœ์‹  AI ๊ธฐ์ˆ  ํ™œ์šฉ

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. J-POP ๋˜๋Š” K-POP ๊ฐ€์‚ฌ ์ž…๋ ฅ
  2. ๋ฒˆ์—ญ ๋ฐฉํ–ฅ ์„ ํƒ
  3. '๋ฒˆ์—ญ ๋ฐ ๊ฐ์ƒ‰' ๋ฒ„ํŠผ ํด๋ฆญ
  4. AI๊ฐ€ ์ƒ์„ฑํ•œ ๊ฒฐ๊ณผ ํ™•์ธ

์ง€์› ์–ธ์–ด

์ž…๋ ฅ ์ถœ๋ ฅ
์ผ๋ณธ์–ด ํ•œ๊ตญ์–ด
ํ•œ๊ตญ์–ด ์ผ๋ณธ์–ด
from jpop_crossfade import translate_and_adapt_lyrics

# ์ž…๋ ฅ ๊ฐ€์‚ฌ (Kenshi Yonezu - "Kick Back")
input_lyrics = """
ใใ†็„ก้‚ชๆฐ—ใชใƒใƒฃใ‚คใƒ ใŒ้ณดใ‚‹
ใชใซใ‚‚ใชใ„ๆ—ฅใ€…ใฎ่กŒ้€ฒๆ›ฒ
ๅฝฑใ‚’้€ฃใ‚Œใฆ่กŒใ“ใ†
ใฉใ“ใธๅ‘ใ‹ใŠใ†ใ‹
้Ÿฟใใ‚ญใƒƒใ‚ฏใƒใƒƒใ‚ฏ
"""

print("๋…ธ๋ž˜ ์ •๋ณด:")
print("์ œ๋ชฉ: Kick Back")
print("๊ฐ€์ˆ˜: ์š”๋„ค์ฆˆ ์ผ„์‹œ (็ฑณๆดฅ็Ž„ๅธซ)")
print("๋ฐœ๋งค๋…„๋„: 2022")
print("๋น„๊ณ : ์• ๋‹ˆ๋ฉ”์ด์…˜ 'Chainsaw Man' ์˜คํ”„๋‹ ํ…Œ๋งˆ")

print("\n์›๋ณธ ๊ฐ€์‚ฌ:")
print(input_lyrics)

# ๋ฒˆ์—ญ ๋ฐ ์Œ์šด ์œ ์‚ฌ์„ฑ์„ ๊ณ ๋ คํ•œ ์˜์—ญ ์ˆ˜ํ–‰
result = translate_and_adapt_lyrics(input_lyrics, source="ja", target="ko", phonetic_similarity=0.7)

print("\nํ•œ๊ตญ์–ด ๋ฒˆ์—ญ:")
print(result['translation'])

print("\n์Œ์šด ์œ ์‚ฌ์„ฑ์„ ๊ณ ๋ คํ•œ K-POP ์Šคํƒ€์ผ ์˜์—ญ:")
print(result['adaptation'])

# ์ถœ๋ ฅ ์˜ˆ์‹œ:
# ๋…ธ๋ž˜ ์ •๋ณด:
# ์ œ๋ชฉ: Kick Back
# ๊ฐ€์ˆ˜: ์š”๋„ค์ฆˆ ์ผ„์‹œ (็ฑณๆดฅ็Ž„ๅธซ)
# ๋ฐœ๋งค๋…„๋„: 2022
# ๋น„๊ณ : ์• ๋‹ˆ๋ฉ”์ด์…˜ 'Chainsaw Man' ์˜คํ”„๋‹ ํ…Œ๋งˆ
#
# ์›๋ณธ ๊ฐ€์‚ฌ:
# ใใ†็„ก้‚ชๆฐ—ใชใƒใƒฃใ‚คใƒ ใŒ้ณดใ‚‹
# ใชใซใ‚‚ใชใ„ๆ—ฅใ€…ใฎ่กŒ้€ฒๆ›ฒ
# ๅฝฑใ‚’้€ฃใ‚Œใฆ่กŒใ“ใ†
# ใฉใ“ใธๅ‘ใ‹ใŠใ†ใ‹
# ้Ÿฟใใ‚ญใƒƒใ‚ฏใƒใƒƒใ‚ฏ
#
# ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ:
# ๊ทธ๋ž˜ ์ˆœ์ง„ํ•œ ์ฐจ์ž„๋ฒจ์ด ์šธ๋ฆฐ๋‹ค
# ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ๋‚˜๋‚ ์˜ ํ–‰์ง„๊ณก
# ๊ทธ๋ฆผ์ž๋ฅผ ๋ฐ๋ฆฌ๊ณ  ๊ฐ€์ž
# ์–ด๋””๋กœ ํ–ฅํ• ๊นŒ
# ์šธ๋ ค ํผ์ง€๋Š” ํ‚ฅ๋ฐฑ
#
# ์Œ์šด ์œ ์‚ฌ์„ฑ์„ ๊ณ ๋ คํ•œ K-POP ์Šคํƒ€์ผ ์˜์—ญ:
# ์†Œ๋ฐ•ํ•œ ์ฐจ์ž„์ด ์šธ๋ ค
# ๊ณตํ—ˆํ•œ ๋‚˜๋‚ ์˜ ํ–‰์ง„๊ณก
# ๊ทธ๋ฆผ์ž ๋ฐ๋ ค ๊ฐ€๋ณผ๊นŒ
# ์–ด๋””๋กœ ๊ฐˆ๊นŒ ์šฐ๋ฆฌ
# ํ‚ฅ๋ฐฑ ์†Œ๋ฆฌ ์šธ๋ ค
from jpop_crossfade import translate_and_adapt_lyrics

# ์ž…๋ ฅ ๊ฐ€์‚ฌ (YOASOBI - "ๅคœใซ้ง†ใ‘ใ‚‹(Yoru ni Kakeru)")
input_lyrics = """
้ง†ใ‘ๆŠœใ‘ใฆใ ๆœชๆฅใธใจ
ๅƒ•ใ‚‰ใฎ่ถณใ‚’ๆญขใ‚ใ‚‹ใ‚‚ใฎใชใฉไฝ•ใ‚‚ใชใ„
"""

print("๋…ธ๋ž˜ ์ •๋ณด:")
print("์ œ๋ชฉ: ๅคœใซ้ง†ใ‘ใ‚‹ (๋ฐค์„ ๋‹ฌ๋ฆฌ๋‹ค)")
print("๊ฐ€์ˆ˜: YOASOBI")
print("๋ฐœ๋งค๋…„๋„: 2019")

print("\n์›๋ณธ ๊ฐ€์‚ฌ:")
print(input_lyrics)

# ๋ฒˆ์—ญ ๋ฐ ์˜์—ญ ์ˆ˜ํ–‰
result = translate_and_adapt_lyrics(input_lyrics, source="ja", target="ko")

print("\nํ•œ๊ตญ์–ด ๋ฒˆ์—ญ:")
print(result['translation'])

print("\nK-POP ์Šคํƒ€์ผ ์˜์—ญ:")
print(result['adaptation'])

# ์ถœ๋ ฅ ์˜ˆ์‹œ:
# ๋…ธ๋ž˜ ์ •๋ณด:
# ์ œ๋ชฉ: ๅคœใซ้ง†ใ‘ใ‚‹ (๋ฐค์„ ๋‹ฌ๋ฆฌ๋‹ค)
# ๊ฐ€์ˆ˜: YOASOBI
# ๋ฐœ๋งค๋…„๋„: 2019
#
# ์›๋ณธ ๊ฐ€์‚ฌ:
# ้ง†ใ‘ๆŠœใ‘ใฆใ ๆœชๆฅใธใจ
# ๅƒ•ใ‚‰ใฎ่ถณใ‚’ๆญขใ‚ใ‚‹ใ‚‚ใฎใชใฉไฝ•ใ‚‚ใชใ„
#
# ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ:
# ๋‹ฌ๋ ค๋‚˜๊ฐ€๋„ค ๋ฏธ๋ž˜๋ฅผ ํ–ฅํ•ด
# ์šฐ๋ฆฌ์˜ ๋ฐœ์„ ๋ฉˆ์ถ”๊ฒŒ ํ•  ๊ฒƒ ๋”ฐ์œ„ ์•„๋ฌด๊ฒƒ๋„ ์—†์–ด
#
# K-POP ์Šคํƒ€์ผ ์˜์—ญ:
# ๋‹ฌ๋ ค๊ฐ€์ž ๋‚ด์ผ์„ ํ–ฅํ•ด
# ์šฐ๋ฆฌ ์•ž๊ธธ ๊ฐ€๋กœ๋ง‰์„ ์ˆœ ์—†์–ด

J-POP-CrossFade๋กœ ์Œ์•…์˜ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด ์ƒˆ๋กœ์šด ์ฐฝ์ž‘์˜ ์„ธ๊ณ„๋ฅผ ๊ฒฝํ—˜ํ•˜์„ธ์š”! ๐ŸŒŸ

About

An AI-powered tool for translating and adapting lyrics between J-POP and K-POP. Using LLM prompting techniques, it bridges linguistic and cultural gaps while preserving the essence of the music. It fosters musical exchange between the two cultures through creative adaptations that consider both meaning and rhythm of the lyrics. ๐ŸŽต๐Ÿ‡ฏ๐Ÿ‡ตโžก๏ธ๐Ÿ‡ฐ๐Ÿ‡ท๐ŸŽค

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages