105Python 拆解千年回环诗!解锁文字循环的编程逻辑

 

回环诗_旋律模进_开嗓音频生成_sequence
回忆

  • 上次研究了 首尾吟
    • 事情总是 绕圈重复
    • 我们需要 找到规律

 

 

  • 文字 除了 首尾呼应之外
    • 也可以 层叠递进 吗?

 

回环

  • 五个字组成字符串
    • 循环起来

 

 

  • 可以 来个 七言 的 吗?

回圜文

  • 苏东坡赏花后作了前两句

赏花归去马如飞 - 去马如飞酒力微”

  • 故意留尾让苏小妹续接

 

  • 苏小妹一眼识破回环逻辑
    • 补上后两句

 

酒力微醒时已暮 - 醒时已暮赏花归

  • 让全诗形成完整循环
    • 苏东坡对此十分赞赏

 

前后有重叠

 

  • 可以用切片的方法
    • 得到 这首诗 吗?

 

poem = "赏花归去马如飞酒力微醒时已暮赏花归"
python角度理解
poem[0:7] poem[3:10] poem[7:14] poem[10:18]

  • 间距并不相等

 

  • 赏花归 出现了 2次
    • 可以只出现 1次 吗?

 

poem = "赏花归去马如飞酒力微醒时已暮"
再压缩
poem[0:7] poem[3:10] poem[7:14] poem[10:] + poem[:3]

  • 压缩成功

 

 

  • 能谱个曲子吗?

生成


import mido from mido import Message, MidiFile, MidiTrack # 创建MIDI文件,设定默认PPQN=480(四分音符=480tick,二分音符=960tick) mid = MidiFile() track = MidiTrack() mid.tracks.append(track) # 初始化:120BPM速度 + 选择竹笛音色(贴近羽调式古风,program=73) track.append(mido.MetaMessage('set_tempo', tempo=mido.bpm2tempo(120))) track.append(Message('program_change', program=73, time=0)) # 核心配置: # 1. 五声羽调式(以D为羽音,对应音高:D4-F4-G4-A4-C5,符合回环柔和的调性) # 2. 诗句对应旋律:4句诗共用核心动机,第4句旋律回归第1句,实现回环 pitch_map = { # 第1句:赏花归去马如飞 "赏": 62, "花": 65, "归": 67, "去": 69, "马": 72, "如": 69, "飞": 67, # 第2句:去马如飞酒力微(复用第1句后4字旋律,自然衔接) "酒": 67, "力": 65, "微": 62, # 第3句:酒力微醒时已暮(复用第2句前3字旋律,铺垫回环) "醒": 62, "时": 65, "已": 67, "暮": 69, # 第4句:醒时已暮赏花归(复用第3句前4字+第1句前3字旋律,完成回环) "赏": 62, "花": 65, "归": 67 } # 完整28字回文诗文本 poem = [ "赏", "花", "归", "去", "马", "如", "飞", # 第1句(7字) "去", "马", "如", "飞", "酒", "力", "微", # 第2句(7字) "酒", "力", "微", "醒", "时", "已", "暮", # 第3句(7字) "醒", "时", "已", "暮", "赏", "花", "归" # 第4句(7字) ] # 生成音符事件:前6字四分音符(480tick),尾字二分音符(960tick) for i, char in enumerate(poem): pitch = pitch_map[char] # 音符按下(音量中等,velocity=70) track.append(Message('note_on', note=pitch, velocity=70, time=0)) # 判断是否为句尾字(第7、14、21、28字),设置对应时长 if (i + 1) % 7 == 0: track.append(Message('note_off', note=pitch, velocity=70, time=960)) # 尾字:二分音符 else: track.append(Message('note_off', note=pitch, velocity=70, time=480)) # 非尾字:四分音符 # 保存MIDI文件 mid.save('huihuan_poem_yu_mode.mid') print("28字回文诗羽调式MIDI已生成:huihuan_poem_yu_mode.mid")
填词
赏花归去马如飞 去马如飞酒力微 酒力微醒时已暮 醒时已暮赏花归


回圜道
poem = "天香荡水动心莲合梦缘"

  • 应该如何提取切片呢?

 

  • 这有啥 应用场景吗?

总结会

  • 用 生成 回环诗 总结
    • 比 哪些 那ai生成 顺口溜的
    • 高级多了

 

 

  • 怎么生成呢?

生成回环文

  • 回环文

 

  • 历史上
    • 写回环诗
    • 比较出名呢?

 

苏慧

  • 前秦时期才女 苏蕙所作

 

  • 窦滔 赴任襄阳 要带小妾

分别

  • 苏蕙 是 正妻
    • 不高兴 拒绝同行

 

 

  • 独守空房
    • 将璇玑图织于锦缎之上
    • 寄予其夫

 

璇玑图

  • 八百四十一字
    • 纵横各二十九字
    • 纵、横、斜、交互、正、反读或退一字、迭一字读均可成诗

 

 

  • 诗有三、四、五、六、七言不等
    • 共有一千多种成诗方法

 

  • 其他艺术形式也有类似的吗?

脱口秀

  • 这种重复性的 节奏感
    • 在 脱口秀里面 叫做 callback
    • 反复刺激

 

 

  • 还有吗?

相声

  • 绕口令
    • 元素的重复
    • 排列组合
    • 构成乐趣

 


相声

  • 相声叫一挂到底

 

  • 就问你 什么 叫
    • 雨打沙滩 万点坑

 

绕口令

  • 《吃葡萄不吐葡萄皮》
    • 吃葡萄不吐葡萄皮
    • 不吃葡萄倒吐葡萄皮

 

  • 《牛郎恋刘娘》
    • 刘娘念牛郎
    • 牛郎年年恋刘娘
    • 刘娘连连念牛郎
    • 郎恋娘来娘念郎

 

  • 《水连天》
    • 天连水,水连天
    • 水天一色望无边
    • 蓝蓝的天似绿水
    • 绿绿的水如蓝天

 

  • 还有吗?

电影


总结🤔

  • 这次研究了 回环文
    • 绕圈读
    • 文字 重叠 反复

 

 

  • 这些都是由 列表构成的
    • 列表 还能怎么玩呢?🤔

 

  • 下次再说 👋



posted on 2025-11-10 18:25  overmind1980  阅读(9)  评论(0)    收藏  举报