KR100275777B1 - 음소별 코드북 매핑에 의한 음색변환방법 - Google Patents

음소별 코드북 매핑에 의한 음색변환방법 Download PDF

Info

Publication number
KR100275777B1
KR100275777B1 KR1019980028159A KR19980028159A KR100275777B1 KR 100275777 B1 KR100275777 B1 KR 100275777B1 KR 1019980028159 A KR1019980028159 A KR 1019980028159A KR 19980028159 A KR19980028159 A KR 19980028159A KR 100275777 B1 KR100275777 B1 KR 100275777B1
Authority
KR
South Korea
Prior art keywords
index
codebook
speaker
code vector
mapping
Prior art date
Application number
KR1019980028159A
Other languages
English (en)
Other versions
KR20000008371A (ko
Inventor
김수일
Original Assignee
윤종용
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자주식회사 filed Critical 윤종용
Priority to KR1019980028159A priority Critical patent/KR100275777B1/ko
Publication of KR20000008371A publication Critical patent/KR20000008371A/ko
Application granted granted Critical
Publication of KR100275777B1 publication Critical patent/KR100275777B1/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/033Voice editing, e.g. manipulating the voice of the synthesiser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • G10L19/07Line spectrum pair [LSP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Optimization (AREA)
  • Multimedia (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Acoustics & Sound (AREA)
  • Computational Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 음소별 코드북 매핑에 의해 음색이 변환된 음성을 생성하는 방법에 관한 것으로서, 본 발명에 의한 프레임 단위로 추출된 원화자의 음성 프레임을 목적화자의 음성 프레임으로 음색변환된 합성음을 생성하는 방법은 (a) 음소의 종류별로, 목적화자 코드벡터의 인덱스 필드 및 그 매핑횟수 필드로 이루어진 필드블록이 다수 포함된 블록그룹이 원화자의 코드북에 포함된 코드벡터의 인덱스에 의해 액세스되도록 구성한 코드북 매핑 테이블을 생성하는 단계; (b) 원화자의 음성 프레임으로부터 음소의 종류를 판별하는 단계; (c) 원화자의 음성 프레임을 LSP 계수로 변환하는 단계; (d) 판별된 음소의 종류에 따른 원화자의 코드북을 탐색하여 LSP 계수와 가장 유사한 코드벡터의 인덱스를 결정하는 단계; (e) 결정된 코드벡터의 인덱스에 의해 코드북 매핑 테이블을 액세스하여 목적화자의 코드벡터로 변환하는 단계; 및 (f) 변환된 목적화자의 코드벡터에 의해 음색변환된 합성음을 생성하는 단계를 포함함을 특징으로 한다.
본 발명에 의하면, 다양한 음색으로 합성음을 생성하기 위해 음성합성장치에 사용할 경우, 합성음의 목적에 따라 나이, 성별 등이 다른 음색으로 문장을 합성할수 있다.

Description

음소별 코드북 매핑에 의한 음색변환방법
본 발명은 음성합성방법에 관한 것으로서, 특히 음소(音素)별 코드북 매핑에 의해 음색이 변환된 음성을 생성하는 방법에 관한 것이다.
최근의 음성합성시스템은 그 성능이 크게 향상되어 전자우편 독출기(Email reader), 기상자료 합성음 서비스, 인터넷 웹문서 읽기 등 각종 문서에 대한 합성음 생성에 응용되는 추세이다. 일반적으로, 합성음의 질(質)은 자연성 및 명료성이라는 두가지 척도로 평가된다. 그런데, 현재까지 합성음의 자연성은 여전히 만족스럽지 못한 수준에 있다.
합성음의 자연성을 향상시키는 방법에는 크게 두가지가 있는데, 하나는 특정 화자(話者)의 발음 특성을 흉내내는 것이고, 다른 하나는 화자의 감정을 합성하는 것이다. 이에, 본 발명은 한사람의 음성을 다른 사람의 음성처럼 들리도록 원화자(原話者)의 발음특성을 변경하는 방법에 관한 것이다.
기존의 벡터 양자화(Vector Quantization : VQ) 코드북(codebook) 매핑에 의한 음색변환방법은 모든 음소에 공통된 코드북을 사용하였다. 그런데, 이러한 방법에서는 공통된 코드북이 음소마다 다른 화자의 음색을 반영하지 못하므로 음색변환 성능을 보장할 수 없다.
본 발명은 상기의 문제점을 해결하기 위하여 창작된 것으로서, 음소별 코드벡터를 사용함으로써 각 음소마다 세밀한 음색변경이 가능한 음소별 코드북 매핑에 의해 음색이 변환된 음성을 생성하는 방법을 제공함을 제1의 목적으로 한다.
그리고, 음색이 변환된 음성을 생성하기 위해 사용되는 코드북 매핑 테이블의 생성방법을 제공함을 제2의 목적으로 한다.
도 1은 본 발명에 의해 사용되는 코드북 매핑 테이블의 구성을 도시한다.
도 2는 본 발명에 의한 코드북 매핑 테이블 및 변환함수가 생성되는 과정을 설명하기 위한 도면이다.
도 3은 본 발명에 의한 음소별 코드북 매핑에 의한 음색변환과정을 도시한 흐름도이다.
상기의 제1의 목적을 달성하기 위하여, 본 발명에 의한 프레임 단위로 추출된 원화자의 음성 프레임을 목적화자의 음성 프레임으로 음색변환된 합성음을 생성하는 방법은 (a) 음소의 종류별로, 목적화자 코드벡터의 인덱스 필드 및 그 매핑횟수 필드로 이루어진 필드블록이 다수 포함된 블록그룹이 원화자의 코드북에 포함된 코드벡터의 인덱스에 의해 액세스되도록 구성한 코드북 매핑 테이블을 생성하는 단계; (b) 상기 원화자의 음성 프레임으로부터 음소의 종류를 판별하는 단계; (c) 상기 원화자의 음성 프레임을 LSP 계수로 변환하는 단계; (d) 상기 (b)단계에서 판별된 음소의 종류에 따른 원화자의 코드북을 탐색하여 상기 LSP 계수와 가장 유사한 코드벡터의 인덱스를 결정하는 단계; (e) 상기 (d) 단계에서 결정된 코드벡터의 인덱스에 의해 상기 코드북 매핑 테이블을 액세스하여 목적화자의 코드벡터로 변환하는 단계; 및 (f) 상기 (e) 단계에서 변환된 목적화자의 코드벡터에 의해 음색변환된 합성음을 생성하는 단계를 포함함을 특징으로 한다.
상기의 제2의 목적을 달성하기 위하여, 본 발명에 의한 코드북 매핑 테이블의 생성방법은 (a) 인덱스 필드 및 매핑횟수 필드로 이루어진 필드블록이 다수 포함된 블록그룹이 원화자의 코드북에 포함된 코드벡터의 인덱스에 의해 액세스되도록 구성된 코드북 매핑 테이블을 초기화하는 단계; (b) 동일한 음소에 대해 원화자가 발음한 제1 음성과 목적화자가 발음한 제2 음성을 각각 선형예측분석하고, 각각 제1 LSP 계수 및 제2 LSP 계수로 변환하는 단계; (c) 상기 원화자의 코드북에서 상기 제1 LSP 계수와 가장 유사한 제1 코드벡터를 찾아 제1 코드벡터의 인덱스를 결정하고, 목적화자의 코드북에서 상기 제2 LSP 계수와 가장 유사한 제2 코드벡터를 찾아 제2 코드벡터의 인덱스를 결정하는 단계; (d) 상기 코드북 매핑 테이블에서 상기 제1 코드벡터의 인덱스에 대응하는 블록그룹 내에서 상기 제2 코드벡터의 인덱스에 대응하는 매핑횟수 필드의 값을 1 증가하는 단계; 및 (e) 소정의 횟수동안 상기 (b) 단계 내지 상기 (d) 단계를 반복하는 단계를 포함함을 특징으로 한다.
본 발명에는 매핑 단계를 통해 원화자와 목적화자의 코드북 매핑 테이블을 생성하는 단계와 코드북 매핑 테이블을 이용하여 원화자 음성의 음색을 변환하는 단계로 이루어진다.
코드북 매핑 테이블을 생성하는 단계는 음색변환 과정과는 별도로 오프라인(off-line)으로 실행된다. 한편, 실제 음색변환은 생성된 코드북 매핑 테이블을 이용하여 온라인(on-line)으로 수행된다.
코드북 매핑 테이블을 생성하는 과정을 도 1 및 도 2를 참조하여 설명한다.
(1) 먼저, 도 1에 도시된 바와 같은 코드북 매핑 테이블을 초기화한다. 코드북 매핑 테이블은 음소의 종류별로 구비되며, 목적화자 코드벡터의 인덱스 필드(10) 및 그 매핑횟수 필드(14)로 이루어진 필드블록(14)이 j개 포함된 블록그룹(16)이 원화자의 코드북에 포함된 코드벡터의 인덱스(0,…,N-1)에 의해 액세스되도록 구성되어 있다.
(2) 도 2에 의하면, 동일한 음소(A)를 원화자와 목적화자가 발음한 두개의 음성을 선형예측분석(linear predictive analysis)후 코드벡터와 같은 형태의 LSP(line spectral pair) 계수로 변경한다.
(3) 다음, 원화자의 음소 A에 대한 코드북(20)을 탐색하여 원화자의 음소(A)에서 추출한 LSP와 가장 유사한 제1 코드벡터 및 그 인덱스를 결정한다. 동시에 목적화자의 음소 A에 대한 코드북(22)을 탐색하여 목적화자의 같은 음소(A)에서 추출한 LSP계수와 가장 유사한 제2 코드벡터 및 그 인덱스를 결정한다.
(4) 다음, 코드북 매핑 테이블에서 제1 코드벡터의 인덱스에 대응하는 블록그룹을 찾는다. 찾은 블록그룹 내에 제2 코드벡터의 인덱스를 기입한 인덱스 필드가 존재하면 대응하는 매핑횟수 필드의 값을 1 증가시킨다. 그러나, 존재하지 않으면 찾은 블록그룹 내에서 값이 할당되지 않은 인덱스 필드에 제2 코드벡터의 인덱스를 기입하고 대응하는 매핑횟수 필드의 값을 1로 둔다.
(5) 대량의 음소별 LSP 계수를 구하여 (2)와 (4) 과정을 반복함으로써 코드북 매핑 테이블을 모두 채운다.
(6) 각 블록그룹별로 매핑횟수 필드에 기입된 값이 큰 순서대로 소정의 수(최소 3개)의 필드블록만을 선택하고 다른 필드블록을 삭제한다.
이와 같은 방법에 의해 생성한 코드북 매핑 테이블을 이용하여 다음과 같은 변환함수(24)를 구할 수 있다.
(여기에서, i는 원화자 코드벡터의 인덱스이고, cvAs(i)는 원화자의 i번째 코드벡터이고, j는 필드블록의 수이고, cvAt(i0),…,cvAt(ij-1)은 각각 cvAs(i)에 대응하는 목적화자의 코드벡터이고, i0,…,ij-1은 각각 목적화자의 코드벡터 인덱스이고, Freqcv(i0),…,Freqcv(ij-1)은 각각 cvAs(i)에 대응하는 목적화자의 코드벡터의 매핑횟수이고, Ft(i)는 Freqcv(i0),…,Freqcv(ij-1)를 합한 값이다)
이하에서는 코드북 매핑 테이블을 이용하여 원화자 음성의 음색을 변환하는 과정을 도 3을 참조하여 설명한다.
입력된 음성을 20~30ms단위의 프레임(frame) 단위로 추출한다.
다음, 추출된 프레임에 대해 음소종류를 판별하고, LPC분석/엑사이테이션(Excitation) 계산/LSP변환한다(300 단계 내지 330 단계). 이와 같은 과정은 본 발명의 범위를 벗어나므로 그 설명은 생략한다.
판별된 음소종류에 해당하는 원화자의 코드북을 탐색하여 330 단계에서 변환된 LSP 계수와 가장 유사한 코드벡터의 인덱스를 결정한다(340 단계).
상기 340 단계에서 결정된 코드벡터의 인덱스에 의해 코드북 매핑 테이블을 액세스하여, 상기한 변환함수(24)에 의해 목적화자의 코드벡터로 변환한다(350 단계).
상기 350 단계에서 변환된 목적화자의 LSP 코드벡터는 다시 LPC로 변환되고, 엑사이테이션도 변경한다(360 단계). 이와 같이 변경된 LPC와 엑사이테이션으로부터 음색변환된 합성음을 생성한다(370 단계).
본 발명에 의하면, 첫째, 다양한 음색으로 합성음을 생성하기 위해 음성합성장치에 사용할 경우, 합성음의 목적에 따라 나이, 성별 등이 다른 음색으로 문장을 합성할수 있다. 즉 정보전달특성을 강조하려면 젊은 여성의 목소리 음색을 이용할수 있고 친근감을 강조하려면 어린아이의 목소리 음색을 이용할수 있다.
둘째, 본 발명을 현재는 없는 유명인의 목소리 음색을 나타내는 방송매체에 사용할수 있다.
세째, 멀티미디어 채팅(chatting) 프로그램 등에서 문자 대신 다양한 목소리 음색을 이용하여 사용자의 욕구를 충족시킬수 있다.
넷째, 발음기관에 장애가 있는 사람들의 발음보조장치에 응용할수 있다.

Claims (5)

  1. 프레임 단위로 추출된 원화자의 음성 프레임을 목적화자의 음성 프레임으로 음색변환된 합성음을 생성하는 방법으로서,
    (a) 음소의 종류별로, 목적화자 코드벡터의 인덱스 필드 및 그 매핑횟수 필드로 이루어진 필드블록이 다수 포함된 블록그룹이 원화자의 코드북에 포함된 코드벡터의 인덱스에 의해 액세스되도록 구성한 코드북 매핑 테이블을 생성하는 단계;
    (b) 상기 원화자의 음성 프레임으로부터 음소의 종류를 판별하는 단계;
    (c) 상기 원화자의 음성 프레임을 LSP 계수로 변환하는 단계;
    (d) 상기 (b)단계에서 판별된 음소의 종류에 따른 원화자의 코드북을 탐색하여 상기 LSP 계수와 가장 유사한 코드벡터의 인덱스를 결정하는 단계;
    (e) 상기 (d) 단계에서 결정된 코드벡터의 인덱스에 의해 상기 코드북 매핑 테이블을 액세스하여 목적화자의 코드벡터로 변환하는 단계; 및
    (f) 상기 (e) 단계에서 변환된 목적화자의 코드벡터에 의해 음색변환된 합성음을 생성하는 단계를 포함함을 특징으로 하는 음소별 코드북 매핑에 의한 음색변환방법.
  2. 제1항에서, 상기 (e)단계에서 변환된 목적화자의 코드벡터는
    수학식
    (여기에서, i는 원화자 코드벡터의 인덱스이고, cvAs(i)는 원화자의 i번째 코드벡터이고, j는 필드블록의 수이고, cvAt(i0),…,cvAt(ij-1)은 각각 cvAs(i)에 대응하는 목적화자의 코드벡터이고, i0,…,ij-1은 각각 목적화자의 코드벡터 인덱스이고, Freqcv(i0),…,Freqcv(ij-1)은 각각 cvAs(i)에 대응하는 목적화자의 코드벡터의 매핑횟수이고, Ft(i)는 Freqcv(i0),…,Freqcv(ij-1)를 합한 값이다)에 의해 구하는 것을 특징으로 하는 음소별 코드북 매핑에 의한 음색변환방법.
  3. (a) 인덱스 필드 및 매핑횟수 필드로 이루어진 필드블록이 다수 포함된 블록그룹이 원화자의 코드북에 포함된 코드벡터의 인덱스에 의해 액세스되도록 구성된 코드북 매핑 테이블을 초기화하는 단계;
    (b) 동일한 음소에 대해 원화자가 발음한 제1 음성과 목적화자가 발음한 제2 음성을 각각 선형예측분석하고, 각각 제1 LSP 계수 및 제2 LSP 계수로 변환하는 단계;
    (c) 상기 원화자의 코드북에서 상기 제1 LSP 계수와 가장 유사한 제1 코드벡터를 찾아 제1 코드벡터의 인덱스를 결정하고, 목적화자의 코드북에서 상기 제2 LSP 계수와 가장 유사한 제2 코드벡터를 찾아 제2 코드벡터의 인덱스를 결정하는 단계;
    (d) 상기 코드북 매핑 테이블에서 상기 제1 코드벡터의 인덱스에 대응하는 블록그룹 내에서 상기 제2 코드벡터의 인덱스에 대응하는 매핑횟수 필드의 값을 1 증가하는 단계; 및
    (e) 소정의 횟수동안 상기 (b) 단계 내지 상기 (d) 단계를 반복하는 단계를 포함함을 특징으로 하는 코드북 매핑 테이블 생성방법.
  4. 제3항에서, 상기 (d) 단계는
    (d.1) 상기 코드북 매핑 테이블에서 상기 제1 코드벡터의 인덱스에 대응하는 블록그룹을 찾는 소단계; 및
    (d.2) 상기 (d.1) 단계에서 찾은 블록그룹 내에 상기 제2 코드벡터의 인덱스를 기입한 인덱스 필드가 존재하면 대응하는 매핑횟수 필드의 값을 1 증가하고, 존재하지 않으면 상기 (d.1) 단계에서 찾은 블록그룹 내에서 값이 할당되지 않은 인덱스 필드에 상기 제2 코드벡터의 인덱스를 기입하고 대응하는 매핑횟수 필드의 값을 1로 두는 소단계를 포함하여 이루어짐을 특징으로 하는 코드북 매핑 테이블 생성방법.
  5. 제3항에서,
    (f) 각 블록그룹별로 매핑횟수 필드에 기입된 값이 큰 순서대로 소정의 수의 필드블록만을 선택하고 다른 필드블록을 삭제하는 단계를 더 포함함을 특징으로 하는 코드북 매핑 테이블 생성방법.
KR1019980028159A 1998-07-13 1998-07-13 음소별 코드북 매핑에 의한 음색변환방법 KR100275777B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980028159A KR100275777B1 (ko) 1998-07-13 1998-07-13 음소별 코드북 매핑에 의한 음색변환방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980028159A KR100275777B1 (ko) 1998-07-13 1998-07-13 음소별 코드북 매핑에 의한 음색변환방법

Publications (2)

Publication Number Publication Date
KR20000008371A KR20000008371A (ko) 2000-02-07
KR100275777B1 true KR100275777B1 (ko) 2000-12-15

Family

ID=19543963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980028159A KR100275777B1 (ko) 1998-07-13 1998-07-13 음소별 코드북 매핑에 의한 음색변환방법

Country Status (1)

Country Link
KR (1) KR100275777B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100426649B1 (ko) * 2001-08-29 2004-04-13 (주) 보이스웨어 다양한 형태의 소리로 음성을 변조하는 장치
JP4241736B2 (ja) 2006-01-19 2009-03-18 株式会社東芝 音声処理装置及びその方法
CN107240401B (zh) * 2017-06-13 2020-05-15 厦门美图之家科技有限公司 一种音色转换方法及计算设备

Also Published As

Publication number Publication date
KR20000008371A (ko) 2000-02-07

Similar Documents

Publication Publication Date Title
US7124083B2 (en) Method and system for preselection of suitable units for concatenative speech
US4912768A (en) Speech encoding process combining written and spoken message codes
US5305421A (en) Low bit rate speech coding system and compression
EP2179414B1 (en) Synthesis by generation and concatenation of multi-form segments
US20040148171A1 (en) Method and apparatus for speech synthesis without prosody modification
JP3446764B2 (ja) 音声合成システム及び音声合成サーバ
CN113327627A (zh) 一种基于特征解耦的多因素可控的语音转换方法及系统
JP3137176B2 (ja) 音声符号化装置
Panda et al. A waveform concatenation technique for text-to-speech synthesis
KR100275777B1 (ko) 음소별 코드북 매핑에 의한 음색변환방법
RU61924U1 (ru) Статистическая модель речи
JP3308764B2 (ja) 音声符号化装置
KR100624440B1 (ko) 음소별 코드북 매핑에 의한 음색변환방법
WO2022141678A1 (zh) 语音合成方法、装置、设备及存储介质
CN115359775A (zh) 一种端到端的音色及情感迁移的中文语音克隆方法
JP3914612B2 (ja) 通信システム
TWI402824B (zh) 中文自發性語音合成中發音變異產生之方法
JP2536169B2 (ja) 規則型音声合成装置
Houidhek et al. Evaluation of speech unit modelling for HMM-based speech synthesis for Arabic
EP1589524A1 (en) Method and device for speech synthesis
CN112735373B (zh) 语音合成方法、装置、设备及存储介质
Chiang A parametric prosody coding approach for Mandarin speech using a hierarchical prosodic model
Kim Excitation codebook design for coding of the singing voice
Bou-Ghazale et al. A source generator based modeling framework for synthesis of speech under stress
CN117711375A (zh) 语音生成方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee