java实现粤语歌曲0243填词法

2023-10-14 01:20

本文主要是介绍java实现粤语歌曲0243填词法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

粤语歌曲填词法

一、前言

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

二、代碼

@Overridepublic 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)的切音。用大白话说,就是母语里没有这些。

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

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

这篇关于java实现粤语歌曲0243填词法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/207140

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听