VocaListener（簡稱ほかりす）是一個自動測定用戶歌聲的語音合成參數的系統，可以簡單地把輸入的歌聲轉換成另一種風格或聲質的技術。技術分為三部分：一是合成歌聲模仿目標歌聲的核心技術「VocaListener-core」，二是編輯目標歌聲的技術「VocaListener-plus」，三是分析歌聲的技術「VocaListener-front-end」。主要由中野倫靖和後藤真孝參與研究，先後以VOCALOID 2的初音未來、鏡音鈴、連、GACKPOID和VOCALOID的MEIKO、KAITO作研究測試，採用的原因是因為產品已發放於市場，較容易入手。而音樂採用RWC研究用音樂資料庫（流行音樂）（RWC-MDB-P-2001）。研究目的是希望可以做到輕易合成高品質的歌聲，從而探索動聽歌聲的技巧，並在歌唱中得知人類個人的知覺。


歷史 技術早於2006年8月已進行研究。最初於2008年4月28日公開，於NICONICO動畫上載音樂軟件初音未來版本的《PROLOGUE （页面存档备份，存于互联网档案馆）》，歌曲原唱為聲優緒方智美。但最初只是寫作簡稱「ほかりす」，並沒有正式發表技術，是一個試驗性質的公開。當時正值初音未來熱潮後不久，其極為自然、非常接近人類的歌聲大大超越初音未來平常歌曲的水準而被稱為「神調教」（把初音未來的歌曲調整得十分自然之意），更引起一段短暫對新技術真相的猜測。同年5月2日承認「ほかりす」就是VocaListener。在5月28日的第75回音樂資訊科學研究會 （页面存档备份，存于互联网档案馆）正式發表。6月6日再公開鏡音鈴版本的《Game of Love （页面存档备份，存于互联网档案馆）》，歌曲原唱為吉井弘美。9月22日再同時公開KAITO、MEIKO、初音未來、鏡音鈴、連ACT2、GACKPOID和合唱版本的演歌《大漁船》，2009年2月6日再公開巡音流歌的版本，歌曲原唱為西一男。4月27日開始Yamaha的「Netほかりす」Alpha版測試，只提供部份功能。


技術 系統先以VocaListener-front-end分析目標歌聲和歌詞，辨認音高、音量、歌詞等，再由用戶以VocaListener-plus編輯修正，其後以VocaListener-core分析歌聲並加以合成，反覆測定音高、音量、歌詞等的相似度，由用戶加以微調，最後得到合成歌聲的參數。


= VocaListener-core =
這是合成歌聲模仿目標歌聲的核心技術，由歌聲分析、歌聲合成、反覆的合成參數更新三種要素組成。歌聲分析的對象不止目標歌聲，亦會對合成後的歌聲作出分析，但分析的使用技術Viterbi alignment會有辨認錯誤的問題，需要反覆分析，務求兩者的風格盡量相近。判定音高分為MIDI的音名數值和滑音斜率。在音名數值中，組合VOCALOID 2滑音斜率（PIT、Pitch Bend）和滑音斜率敏感度（PBS、Pitch Bend Sensitivity）最多可以做出高或低兩個八度的滑音，而音名數值由以下數式選擇（NoteNumber：音名數值、σ=0.03、t是音符長度。）：

  
    
      
        
          N
          o
          t
          e
          N
          u
          m
          b
          e
          r
        
        =
        
          
            n
            
              a
              r
              g
              m
              a
              x
            
          
        
        
          
            
              (
            
          
          
            
              ∑
              
                t
              
            
            e
            x
            p
          
          
            
              
                {
              
            
            −
            
              
                
                  (
                  n
                  −
                  
                    F
                    
                      0
                    
                  
                  (
                  t
                  )
                  
                    )
                    
                      2
                    
                  
                
                
                  2
                  
                    σ
                    
                      2
                    
                  
                
              
            
            
              
                }
              
            
          
          
            
              )
            
          
        
      
    
    {\displaystyle {NoteNumber}={\overset {argmax}{n}}{{\Big (}{\sum _{t}exp}{{\Big \{}-{\frac {(n-F_{0}(t))^{2}}{2\sigma ^{2}}}{\Big \}}}{\Big )}}}
  

而合成歌聲是
  
    
      
        F
        0
        
          
            
              s
              y
              n
            
            
              (
              n
              )
            
          
        
        (
        t
        )
      
    
    {\displaystyle F0{\overset {(n)}{syn}}(t)}
  
、目標歌聲則是
  
    
      
        F
        
          0
          
            o
            r
            g
          
        
        (
        t
        )
      
    
    {\displaystyle F0_{org}(t)}
  
。經過重複計算而把兩個數值不斷更新，變得相似。把PIT和PBS轉換為數式則是如此：

  
    
      
        
          
            P
            b
          
          
            (
            n
            +
            1
            )
          
        
        
          (
          t
          )
        
        =
        
          
            P
            b
          
          
            (
            n
            )
          
        
        
          (
          t
          )
        
        +
        
          
            
              (
            
          
          
            
              F
              
                0
                
                  o
                  r
                  g
                
              
            
            (
            t
            )
          
          −
          
            F
            0
            
              
                
                  s
                  y
                  n
                
                
                  (
                  n
                  )
                
              
            
            (
            t
            )
          
          
            
              )
            
          
        
      
    
    {\displaystyle {Pb}^{(n+1)}{(t)}={Pb}^{(n)}{(t)}+{{\Big (}{{F0_{org}}(t)}-{F0{\overset {(n)}{syn}}(t)}{\Big )}}}
  

而音量測定上是使用相對數值，反覆測定而得到從0至127的強弱（DYN、Dynamics）數值。


= VocaListener-plus =
這是編輯目標歌聲的技術，可以令歌聲有更廣闊的種類，但並非一定要使用。技術中分為兩種類，分別是改變音高和改變歌唱風格的機能。前者的改變音高，用途可以是修正走音，或可以合成原唱者不能唱出的音高。然而在音符較短的時候，可能會不能修正音高。後者可調整振音的強弱、音高、音量的平滑感，藉以改變歌唱風格，甚至加強歌唱的表現。


= VocaListener-front-end =
VocaListener-front-end則分為歌聲分析及歌聲合成，在歌聲分析中需要從原歌聲中抽出音高、音量、發音開始時間和音長。

音高
由以下數式轉換為MIDI的音名數值（fHz：基本頻率、fNoteNumber：MIDI的音名數值）：

  
    
      
        
          f
          N
          o
          t
          e
          N
          u
          m
          b
          e
          r
        
        =
        
          12
        
        ∗
        
          
            log
            
              2
            
          
        
        
          
            
              f
              H
              z
            
            440
          
        
        +
        
          69
        
      
    
    {\displaystyle {fNoteNumber}={12}*{\log _{2}}{\frac {fHz}{440}}+{69}}
  

音量
由以下數式計算（N：窗幅、x(t)：聲音波形、h(t)：窗函數）：

  
    
      
        P
        o
        w
        (
        t
        )
        =
        
          ∑
          
            r
            =
            t
            −
            N
            
              /
            
            2
          
          
            t
            +
            N
            
              /
            
            2
          
        
        
          
            
              (
            
          
          
            
              (
              x
              (
              r
              )
              ∗
              h
              (
              r
              −
              t
              )
              
                )
                
                  2
                
              
            
          
          
            
              )
            
          
        
      
    
    {\displaystyle Pow(t)=\sum _{r=t-N/2}^{t+N/2}{{\Big (}{\sqrt {(x(r)*h(r-t))^{2}}}{\Big )}}}
  

技術中N為2048（約46毫秒）、h(t)為漢寧（Hanning）窗。
發音開始時間和音長
使用Viterbi alignment辨認音聲，再從歌詞轉換為音素，但偶然會有辨認錯誤，需要用戶修正。


參見 語音合成
VOCALOID
產業技術綜合研究所


参考資料 外部連結 （日語）VocaListener （页面存档备份，存于互联网档案馆）
（日語）NICONICO動畫：VocaListener Demonstrations （页面存档备份，存于互联网档案馆）
（英文）（日語）產業技術綜合研究所 （页面存档备份，存于互联网档案馆）
（日語）後藤 真孝's Home Page （页面存档备份，存于互联网档案馆）
（日語）中野倫靖個人檔案
（英文）（日語）RWC音樂資料庫：流行音樂 （页面存档备份，存于互联网档案馆）
（英文）（日語）RWC音樂資料庫：音樂分類 （页面存档备份，存于互联网档案馆）