我有缩放和平移工作的x轴,但我想为y轴添加平移.我尝试使用d3.behavior.zoom
和d3.event.translate[1]
得到y平移值并使用它但转换值在转换时发生变化,因此点击拖动确实平移y轴,缩放也平移y轴(以非直观的方式).
我还尝试使用两个d3.behavior.zoom
实例,一个用于x轴,一个用于y轴,但只有最后一个添加在zoom事件上.
这是一个适用于x方向缩放和平移的示例,我也想添加y平移(但不是y缩放):
var x = d3.scale.linear()
.domain([0, 800])
.range([0, 800]);
var y = d3.scale.linear()
.domain([0, 800])
.range([0, 800]);
var rectangleSelector = d3.select('svg')
.append('g')
.selectAll('rect')
.data([[0, 0], [50, 50], [100, 100]])
.enter()
.append('rect')
.attr('fill', 'black')
.attr('x', d => x(d[0]))
.attr('y', d => y(d[1]))
.attr('width', d => x(d[0] + 40) - x(d[0]))
.attr('height', d => y(40));
d3.select('svg')
.call(d3.behavior.zoom().x(x).on('zoom', () => {
rectangleSelector
.attr('x', d => x(d[0]))
.attr('y', d => y(d[1]))
.attr('width', d => x(d[0] + …
Run Code Online (Sandbox Code Playgroud)voice_kal_diphone
并且voice_ral_diphone
在唱歌模式下正常工作(有声音输出,并且音高对于指定的音符是正确的).
voice_cmu_us_ahw_cg
和其他CMU声音不能正常工作 - 有声音输出,但音高不会根据指定的音符改变.
是否可以使用更高质量的CMU声音获得正确的输出?
工作(音高影响)输出的命令行是:
text2wave -mode singing -eval "(voice_kal_diphone)" -o song.wav song.xml
Run Code Online (Sandbox Code Playgroud)
非工作(音高不受影响)输出的命令行是:
text2wave -mode singing -eval "(voice_cmu_us_ahw_cg)" -o song.wav song.xml
Run Code Online (Sandbox Code Playgroud)
这是song.xml
:
<?xml version="1.0"?>
<!DOCTYPE SINGING PUBLIC "-//SINGING//DTD SINGING mark up//EN" "Singing.v0_1.dtd" []>
<SINGING BPM="60">
<PITCH NOTE="A4,C4,C4"><DURATION BEATS="0.3,0.3,0.3">nationwide</DURATION></PITCH>
<PITCH NOTE="C4"><DURATION BEATS="0.3">is</DURATION></PITCH>
<PITCH NOTE="D4"><DURATION BEATS="0.3">on</DURATION></PITCH>
<PITCH NOTE="F4"><DURATION BEATS="0.3">your</DURATION></PITCH>
<PITCH NOTE="F4"><DURATION BEATS="0.3">side</DURATION></PITCH>
</SINGING>
Run Code Online (Sandbox Code Playgroud)
您可能还需要此补丁singing-mode.scm
:
@@ -339,7 +339,9 @@
(defvar singing-max-short-vowel-length 0.11)
(define (singing_do_initial utt token)
- (if (equal? (item.name token) "")
+ …
Run Code Online (Sandbox Code Playgroud)