java实现粤语歌曲0243填词法

news2024/11/28 6:54:10

粤语歌曲填词法

一、前言

转化成数字歌。对每个音符,提供配合广东话声调的字,选出成为歌词。可以在网上创作,或下载到自己电脑中使用。
在这里插入图片描述
简谱 3656536,歌词 落花满天蔽月光。 唱起来配合乐曲音调。这叫做‘叶韵’,又叫做‘协音’。
如果随便拿句说话来唱,譬如‘我下昼要去买餸’,唱起来会变成‘饿虾昼腰去卖鬆’。七个字里有五个字不能配合乐曲音调,这叫做‘拗音’。要尽量避免歌词拗音,听众容易知道原来的字,不太逆耳的,有时也可以接受。不要因为微小拗音就放弃最好的词句。

二、代碼

@Override
    public String[] createTianci(String content) throws Exception {
        String result[] = new String[2];
        String record = "";
        String record2 = "";
        String[] characters = new String[content.length()];
        record+=content+"\r\n\r\n";
        for (int m = 0; m < content.length(); m++) {
            characters[m] = String.valueOf(content.charAt(m));
            Map<String,Object> map = new HashMap<>();
            map.put("eq_name", characters[m]);
            SongYueyu songYueyu = songYueyuService.getOne(map);
            if(songYueyu!=null){
                String yy = songYueyu.getY2();
                String yy2 = songYueyu.getY2();
                Map<String,Object> map2 = new HashMap<>();
                map2.put("eq_y2", yy2);
                map2.put("noteq_name", characters[m]);
                List<SongYueyu> songYueyu2s = songYueyuService.list(map2);
                String yy3 = "~";
                if(songYueyu2s.size()>0){
                    for (SongYueyu songYueyu3 : songYueyu2s){
                        yy3+= songYueyu3.getName()+"‘";
                    }
                }
                record+=yy+" ";
                record2+=yy3+"~ \r\n";
            }else {
                record+="?"+" ";
            }
        }
        result[0] = record;
        result[1] = record2;


        return result;
    }

在这里插入图片描述

广东话歌曲填词,须具备三项基本能力:

  1. 对音乐旋律和节奏,能够感应它要表达的情感,而产生共鸣。

这方面的知识和能力,不在本文讨论范围内。况且,对音乐无动于中的人,相信也不会有兴趣填词。

  1. 对中文有充份认识,能写流利和有文采的文字。

最好是熟读和背诵大量诗词散文,灵活模仿运用。再不然就要懂得修辞学,留心使用。这方面的知识,从古代的文心雕龙,到现代的歌词修辞学,都很容易在图书馆或互联网上寻到。这也不在本文讨论范围内。

  1. 能讲广东话,能判断字的广东读音是否合符乐曲音调。

一、母语不是粤语(或不精通粤语)可否完成粤语填词?二、非粤语母语者的填词人王久平,所创作的粤语歌词,唱起来不太顺口;母语是粤语的词作者林夕,国语作词作品却屡有佳作。原因为何?

我们先回答第一个问题。其他语言不知道,但是粤语必须要精通,如果不掌握粤语,则无法填粤语歌词。
能观察到这个现象,说明你对歌曲填词的倚声填词,因曲发声的概念开始有所觉察了。因为粤语歌曲填词,对于歌词声调与旋律音高的绝对和相对的对应关系,都有着极低的容错率,换句话说,如果哪一个字或哪一个词语的调型,与此处旋律音高的走向不相一致的话,那么这首歌将是一首错误的歌。

粤语声调是九声六调,调值、调型的分布如下。从下图可以直观地观察到每一个声调的走势。

粤语九声六调调值图1

粤语九声六调调值表2
例如说粤语的第二声,调值是35,走势是向上升起的,那么在填入乐曲时,这个乐曲旋律的音高,应该是相对上升的。以《富士山下》为例,我们先来看5612123/5612121这两个乐句

凡是标注绿色箭头的字,在旋律音高都呈现出向上的趋势,如:你(nei5),我(ngo5),雨(jyu5),彼(bei2)这几个字,对照上文的两个调值表可以知道,这几个字在粤语声调中分别为第二声,第五声,第二声和第五声的调值特点即为向上扬起。那么将这几个字填入这样的旋律中,就是正确的。
再举一个反面例子,《笑纳》中的这一句粤语歌词,填词人非粤语母语者。

第一句歌词的粤语拼音为“撑(caang1)伞(saan3)接(zip3)落(lok6)花(fa)”
这一句的调型排列图应该是 55-33-33-22-55,如果把这个调值的排列顺序放进钢琴卷帘里,以直观的图片来表现,应该是如此

再看这个乐句的简谱旋律的钢琴窗,有一些时值很短的装饰音,可以忽略。

将二者对比起来看

红色为歌词声调的走向,绿色为旋律音高的走向,可以看出,两个走向相当不一致,甚至是互相违背的。因此这句粤语歌词是相当不正确的。

可见,要填粤语歌词,必须要懂得将一个字或词语,填到它应该适用的位置,必须要非常严格地“对号入座”,这种对应就叫做“词曲协音”,如果稍微有一些对应失当,那么就是“不协音”,不协和的歌词与乐曲,就是失败的,错误的,不正确的。
但很可惜,并不是每一个填词的人都具备这样的知识储备,或者说没有对陌生语言的领域的敬畏之心、谦逊之心,因此市面上有非常大量的并不正确的粤语歌,如《野狼disco》、《大风吹》、《秒针》,其粤语部分都是错误的。
当然,其实在粤语填词的更早些年代,如上世纪六七十年代,其实也是有许多粤语歌曲并不讲究“协音”的,例如“《初恋》这首歌中“爱恋没经验,今天初发现”的“今天”两字,或者《上海滩》中“万里滔滔江水永不休”的“滔滔”两字。因为粤语填词的“协音”要求,确实是逐渐发展得严格起来的,在更早一些时候,我们对粤语歌曲填词尚未有作出这样的要求。而且,其实在不影响听众理解的情况下,这两个词语,是可以结合上下文语境做出理解的,比如,虽然“今天”这两个字的发音与旋律相违背,但我们只需要听到“初发现”这三个字,就可以大致猜出前面的两个字。又如,“滔滔”两个字的走向虽然与乐曲不一致,但后文听到“江水”也能够推测出前文的“滔滔”。因此,为数不多的“不协音”并不会影响听众的理解,也就无可厚非。
所以其实我们所说的“协音”是一种相对的关系,而非绝对的关系。衡量粤语歌曲是否正确的标准,是需要置身于整个环境来听的。
但可怕的是,较多的母语非粤语的填词人,在写粤语歌词时,想当然地使用了普通话的语法和词汇,寄希望于歌手用粤语的发音,来将歌曲完善成为一首“粤语歌”。这是非常傲慢的一种做法。因为语音词汇语法是构成一门语言的三个要素,三者缺一不可。对填词人来说,掌握语言的运用犹如打下基础,而创作则像是更高阶的一种技能。不夯实地基,就去好高骛远,那么哪怕只是一两句,也会非常奇怪。

第二个问题,非粤语母语者的填词人王久平,所创作的粤语歌词,唱起来不太顺口;母语是粤语的词作者林夕,国语作词作品却屡有佳作。原因为何?
首先我们要确认的问题,是“是不是”,而非“为什么”。
我没有遍阅林夕所有作品,但阅读林夕作品的数量,较常人应该更多一些。林夕的填词作品,其实也有相当多的“行货”。在他浩如烟海的众多作品之中,“经典”“佳作”“行货”的比例,我个人认为是,1:2:7 这样的比例(评判标准比较私人,纯属个人意见,如有偏颇请见谅)而在国语作品之中产生的“佳作”,相比起粤语作品之中产生的“佳作”,数量和质量都相差悬殊。所以坦白说,我不认同林夕的国语作品是“佳作频出”的这个观点。
但如果要与非粤语母语者去填粤语词相比的话,你的观察是有道理的。
因为在同等的条件下(年龄、学习能力、悟性相当的情况),国语母语者的人学习粤语的学习成本,远远大于粤语母语者学习国语的学习成本。而国语母语者学粤语的回报率,远远低于粤语母语者学国语的回报率。因为粤语与国语在语音、语法、词汇方面的差异和区隔,已经相当大了。
我们分开学习成本和回报率两个角度来讨论。首先是学习成本:
现行的现代汉语的操语者,如果在母语后再去习得一门新的语言(如粤语),需要克服的难点,一个是粤语语音中极难发音的一些声韵母,一个是粤语独有的语法和语序,一个是粤语中独有的新奇词汇,一个是非常难以获得的语言环境(粤语的使用范围已定)。对于母语是现代汉语的人来说,察觉粤语语音中的某些音节已经是非常困难的事情。比如,她们很难听得出高平和低平的区别,高升和中升的区别,也很难发得出(oeng)这个韵母,或(ng)这个声母,更难发出韵尾是(ktp)的切音。用大白话说,就是母语里没有这些。

而一个粤语母语者要学习国语,学习成本是相对较低的(和国语母语者学粤语相比)。首先,语音方面,粤语母语者学习国语时,虽然确实有一些难度(如粤语中只有翘舌音没有平舌音、粤语中没有汉语第三声),但对比起来难度已经较小了;其次词汇方面,有些词虽然在粤语地区有独特叫法,但国语的叫法他们也能够接受。如香港习惯的某些称呼,草莓-士多啤梨,土豆-薯仔,手机-电话,充电宝-尿袋,粤语母语者同时能够理解这些国语的叫法;最后,在语法方面,即便是略有不同的语序,也能够在表达出来以后,令国语母语者理解。
然后是回报率:
国语母语者要学粤语到一个令粤语操语者能够听懂的地步,基本上要把粤语说得七七八八,大差不差,即,能够把粤语的语素以一个有组织的形式构成完整的句子或段落。这样,粤语操语者才能够听懂。而粤语母语者说国语,即便不太完整,不太正确,甚至“夹生”,我们作为国语母语者也能通过前后文,语境等场外因素大致听懂(如蔡少芬、古天乐、黎诺懿等)

这两种情况总结起来,其实就是国语母语者学习粤语的投入和回报情况,不如粤语母语者学习国语的投入和回报情况乐观。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/968353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Open3D的点云处理17-Open3d的C++版本

参考&#xff1a; http://www.open3d.org/docs/latest/cpp_api.htmlhttp://www.open3d.org/docs/latest/getting_started.html#chttp://www.open3d.org/docs/release/cpp_project.html#cplusplus-example-projecthttps://github.com/isl-org/open3d-cmake-find-packagehttps:/…

数学建模:相关性分析

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 数学建模&#xff1a;相关性分析 文章目录 数学建模&#xff1a;相关性分析相关性分析两变量的相关分析PearsonSpearmanKendall tua-b 双变量关系强度测量的指标相关系数的性质代码实现example偏相关分析 相…

vmware虚拟机(ubuntu)远程开发golang、python环境安装

目录 1. 下载vmware2. 下载ubuntu镜像3. 安装4. 做一些设置4.1 分辨率设置4.2 语言下载4.3 输入法设置4.4 时区设置 5. 直接切换管理员权限6. 网络6.1 看ip6.2 ssh 7. 本地编译器连接远程服务器7.1 创建远程部署的配置7.2 文件同步7.3 远程启动项目 8. ubuntu安装golang环境8.1…

2023 AZ900备考

文章目录 如何学习最近准备考AZ900考试&#xff0c;找了一圈文档&#xff0c;结果发现看那么多文档&#xff0c;不如直接看官方的教程https://learn.microsoft.com/zh-cn/certifications/exams/az-900/ &#xff0c;简单直接&#xff0c;突然想到纳瓦尔宝典中提到多花时间进行思…

JUC并发编程--------CAS、Atomic原子操作

什么是原子操作&#xff1f;如何实现原子操作&#xff1f; 什么是原子性&#xff1f; 事务的一大特性就是原子性&#xff08;事务具有ACID四大特性&#xff09;&#xff0c;一个事务包含多个操作&#xff0c;这些操作要么全部执行&#xff0c;要么全都不执行 并发里的原子性…

Java8新特性Lambda表达式详细

Comparator&#xff1a;此接口中只包含一个方法 int compare(T A,T B) 如果A>B&#xff0c;返回正数 如果AB&#xff0c;返回0 入伙A<B&#xff0c;返回负数Lambda表达式 函数式重点&#xff1a;只需要关注参数列表和方法体 看参数ctrlp 需求分析 我们在创建线程并启动…

Python常用IDE选择与安装

1、IDE简介 选择一款高效而又顺手的IDE学习或使用Python&#xff0c;可以让你的开发之路充满激情和动力&#xff0c;让你真正投入其中。 常见的Python的IDE工具有&#xff1a; PyCharm 由JetBrains开发的Python IDE&#xff0c;功能强大&#xff0c;支持调试、代码自动完成、…

Java应用CPU占用过高故障排除

一、背景 最近测试反馈测试环境接口偶现有访问超时&#xff0c;然后APP提示是网络失败&#xff0c;看了一下测试环境的应用完全没啥问题&#xff0c;一直以为是网络问题。 今天测试有反馈了&#xff0c;赶紧看了一下测试服务器&#xff0c;这次终于有症状了&#xff0c;CPU直…

【FPGA项目】沙盘演练——基础版报文收发

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 第1个虚拟项目 前言 点灯开启了我们的FPGA之路&#xff0c;那么我们来继续沙盘演练。 用一个虚拟项目&#xff0c;来入门练习&#xff0c;以此步入数字逻辑的…

《C++ primer plus》精炼(OOP部分)——对象和类(1)

聪明在于学习&#xff0c;天才在于积累。所谓天才&#xff0c;实际上是依靠学习。 文章目录 概述正文面向对象编程和面向过程编程类和对象类的组成公共接口 类声明访问控制封装 类和结构体类定义 概述 C是门包罗万象的语言&#xff0c;它将各门类的编程思想杂糅&#xff0c;最…

Parallels Desktop 19新功能解析,助力跨平台工作流程提升!

对于许多Mac用户来说&#xff0c;运行Windows应用程序是必不可少的。也许你的雇主使用的软件只适用于Windows&#xff0c;或者需要使用依赖于某些Windows技术的网站。或者你想在Mac上玩Windows游戏。或者&#xff0c;你可能需要在其他操作系统上测试应用程序和服务——你可以在…

系统vcomp120.dll丢失怎么办?要怎样修复呢?三个修复方法分享

我要和大家分享一个关于系统丢失vcomp120.dll文件的问题。这个问题可能会困扰很多使用电脑的朋友&#xff0c;特别是在运行某些软件时&#xff0c;可能会出现“找不到vcomp120.dll”的错误提示。那么&#xff0c;遇到这样的问题&#xff0c;我们应该如何解决呢&#xff1f;接下…

用 ChatGPT 写代码太省时间了

几个月前&#xff0c;我们聊过陶哲轩使用 ChatGPT 辅助解决数学问题。当时&#xff0c;他觉得虽然测试结果不太令人满意&#xff0c;但也并没有对 ChatGPT 持完全否定的态度。他觉得&#xff0c;像 ChatGPT 这类大型语言模型在数学中可以用来做一些半成品的语义搜索工作&#x…

【leetcode 力扣刷题】汇总区间//合并区间//插入区间

一些关于区间的力扣题目 228. 汇总区间56. 合并区间57. 插入区间 228. 汇总区间 题目链接&#xff1a;228.汇总区间 题目内容&#xff1a; 看题目真是没懂这个题到底是要干啥……实际上题目要求的恰好覆盖数组中所有数字的最小有序区间范围列表&#xff0c;这个最小是指一个区…

QT 设置应用程序图标

1.下载xx.ico图标&#xff1a;ico网址 2.在线PNG转换ICO&#xff1a;png在线转换ico 3.添加图标资源 1&#xff09;新建文件路径 2&#xff09;添加图片资源 3&#xff09;在 .pro文件里面添加图片 4&#xff09;将xx.ico放到工程目录&#xff0c;编译完可以看到xx.exe的图标…

【LeetCode】515.在每个树行中找最大值

题目 给定一棵二叉树的根节点 root &#xff0c;请找出该二叉树中每一层的最大值。 示例1&#xff1a; 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例2&#xff1a; 输入: root [1,2,3] 输出: [1,3]提示&#xff1a; 二叉树的节点个数的范围是 [0,10^4]-2^31 < No…

无涯教程-JavaScript - CUBERANKEDMEMBER函数

描述 CUBERANKEDMEMBER函数返回集合中的第n个或排序的成员。 使用此功能可返回一组中的一个或多个元素,如销售业绩最好的人或前十名的学生。 语法 CUBERANKEDMEMBER (connection, set_expression, rank, [caption])争论 Argument描述Required/OptionalconnectionThe name …

Linux--进程--创建子进程一般目的

父进程创建子进程的目的&#xff1a;简单来说&#xff1a;给特定的输入&#xff0c;给出特定的输出 父进程希望复制自己&#xff0c;使父、子进程同时执行不同的代码段。这在网络服务进程中是常见的——父进程等待客户端的服务请求。当请求到达&#xff0c;父进程调用fork&…

FPGA 学习笔记:Vivado 工程管理技巧

前言 当前使用 Xilinx 的 FPGA,所以需要熟悉 Xilinx FPGA 的 开发利器 Vivado 的工程管理方法 这里初步列举一些实际 Xilinx FPGA 开发基于 Vivado 的项目使用到的工程的管理技巧 代码管理 做过嵌入式软件或者其他软件开发的工程技术人员,都会想到使用代码管理工具,如 SVN 、…

架构师成长之路Redis第一篇|Redis 安装介绍以及内存分配器jemalloc

安装 Redis官网:https://redis.io/download/ 下载安装二进制文件 可下载安装最新版Redis7.2.0,或者可选版本6.x 我这里下载6.2.13和7.2最新版本,后面我们都是安装6.2.13版本的信息进行讲解 二进制文件安装步骤 安装前期准备: 安装gcc yum install gcc 压缩文件 tar -xzf re…