Tutorials6 min read
발음 평가 어노테이션
오디오 재생, 파형 시각화, Likert 평가 척도, 녹음별 자유 텍스트 피드백 필드를 갖춘 발음 품질 어노테이션 작업을 Potato로 구축합니다.
Potato Team
발음 평가는 언어 학습 앱, 언어 치료, 액센트 코칭에서 등장합니다. 이 튜토리얼에서는 발음 품질을 평가하고, 특정 오류를 표시하며, 상세한 피드백을 작성하기 위한 인터페이스를 구축하는 과정을 설명합니다. 기반이 되는 오디오 기능에 대해서는 오디오 어노테이션 문서를 참조하십시오.
기본 발음 평가
yaml
annotation_task_name: "Pronunciation Assessment"
task_dir: "."
data_files:
- data/learner_recordings.json
item_properties:
id_key: id
text_key: target_text
instance_display:
fields:
- key: target_text
type: text
label: "Target sentence"
- key: audio_path
type: audio
label: "Learner recording"
display_options:
controls: true
show_waveform: true
annotation_schemes:
- annotation_type: likert
name: overall_quality
description: "Overall pronunciation quality"
size: 5
min_label: "Very poor"
max_label: "Excellent"
label_requirement:
required: true
output_annotation_dir: annotation_output/
export_annotation_format: jsonl
user_config:
allow_all_users: true상세 평가 구성
yaml
annotation_task_name: "Detailed Pronunciation Assessment"
task_dir: "."
data_files:
- data/recordings.json
item_properties:
id_key: id
text_key: sentence
instance_display:
fields:
- key: sentence
type: text
label: "Target text"
- key: native_language
type: text
label: "First language"
- key: learner_audio
type: audio
label: "Learner recording"
display_options:
controls: true
show_waveform: true
- key: native_audio
type: audio
label: "Native reference"
display_options:
controls: true
annotation_schemes:
- annotation_type: likert
name: overall
description: "Overall pronunciation quality"
size: 5
min_label: "Very poor"
max_label: "Excellent"
label_requirement:
required: true
- annotation_type: likert
name: intelligibility
description: "How understandable is the speaker?"
size: 5
min_label: "Unintelligible"
max_label: "Perfectly clear"
label_requirement:
required: true
- annotation_type: likert
name: accent_strength
description: "How strong is the foreign accent?"
size: 5
min_label: "No accent"
max_label: "Very strong"
- annotation_type: likert
name: intonation
description: "Intonation and rhythm"
size: 5
min_label: "Unnatural"
max_label: "Native-like"
- annotation_type: likert
name: fluency
description: "Fluency, meaning smoothness and pausing"
size: 5
min_label: "Very disfluent"
max_label: "Very fluent"
- annotation_type: multiselect
name: error_types
description: "What errors are present? Select all that apply."
labels:
- Vowel errors
- Consonant errors
- Word stress errors
- Sentence intonation errors
- Rhythm or timing errors
- Added sounds
- Deleted sounds
- Substituted sounds
- No significant errors
- annotation_type: text
name: problem_words
description: "List any mispronounced words"
placeholder: "e.g. 'thought' pronounced as 'taught'"
label_requirement:
required: false
- annotation_type: radio
name: native_comparison
description: "Compared to the native reference"
labels:
- Very different
- Somewhat different
- Fairly similar
- Very similar
- Indistinguishable
- annotation_type: likert
name: confidence
description: "Your confidence in this assessment"
size: 5
min_label: "Low"
max_label: "High"
output_annotation_dir: annotation_output/
export_annotation_format: jsonl단어 수준 평가
상세한 음소/단어 피드백을 위해:
yaml
annotation_schemes:
- annotation_type: multirate
name: word_ratings
description: "Rate the pronunciation of each word"
options:
- "the"
- "weather"
- "is"
- "really"
- "nice"
- "today"
labels:
- Poor
- Fair
- Good
arrangement: vertical음소 수준 어노테이션
음성 연구를 위해:
yaml
data_files:
- data/phoneme_data.json
item_properties:
id_key: id
text_key: expected_phonemes
annotation_schemes:
- annotation_type: speech_transcript
name: phonemes
description: "Mark substitutions, deletions, and insertions against the expected phonemes"
segments_key: expected_phonemes
error_types:
- substitution
- deletion
- insertion
allow_correction: true전체 구성
yaml
annotation_task_name: "L2 English Pronunciation Assessment"
task_dir: "."
data_files:
- data/esl_recordings.json
item_properties:
id_key: id
text_key: target_sentence
instance_display:
fields:
- key: target_sentence
type: text
label: "The learner was asked to say"
- key: native_language
type: text
label: "First language"
- key: proficiency_level
type: text
label: "Level"
- key: audio_url
type: audio
label: "Recording"
display_options:
controls: true
show_waveform: true
annotation_instructions: |
## Pronunciation Assessment Guidelines
### Rating scales
**Overall score (1-9)**
- 1-3: significant difficulty, hard to understand
- 4-6: noticeable accent, still understandable
- 7-9: minor issues through to native-like
**Comprehensibility** is how much effort understanding takes. Ignore the
accent where the message is clear.
**Accentedness** is the degree of foreign accent, judged independently of
whether you understood it.
### What to listen for
Individual sounds, word stress, sentence intonation, and speaking rate.
### Tips
Listen at least twice. Use slow playback for the details. Be consistent
across recordings rather than across raters.
annotation_schemes:
- annotation_type: likert
name: overall_score
description: "Overall pronunciation score"
size: 9
min_label: "Very poor"
max_label: "Native-like"
label_requirement:
required: true
- annotation_type: likert
name: comprehensibility
description: "How easy is it to understand?"
size: 9
min_label: "Very hard"
max_label: "Very easy"
label_requirement:
required: true
- annotation_type: likert
name: accentedness
description: "How strong is the foreign accent?"
size: 9
min_label: "No accent"
max_label: "Very strong"
- annotation_type: likert
name: vowels
description: "Vowel pronunciation accuracy"
size: 5
min_label: "Poor"
max_label: "Excellent"
- annotation_type: likert
name: consonants
description: "Consonant pronunciation accuracy"
size: 5
min_label: "Poor"
max_label: "Excellent"
- annotation_type: likert
name: word_stress
description: "Word stress patterns"
size: 5
min_label: "Incorrect"
max_label: "Correct"
- annotation_type: likert
name: sentence_intonation
description: "Sentence intonation"
size: 5
min_label: "Unnatural"
max_label: "Natural"
- annotation_type: likert
name: fluency
description: "Speaking fluency"
size: 5
min_label: "Disfluent"
max_label: "Fluent"
- annotation_type: multiselect
name: common_errors
description: "Check all that apply"
labels:
- Th-sounds (think, this)
- R-sounds
- L-sounds
- Vowel length
- Final consonants dropped
- Consonant clusters simplified
- Word stress on wrong syllable
- Flat intonation
- No errors detected
label_requirement:
required: false
- annotation_type: text
name: feedback
description: "Specific words or sounds that need work"
rows: 4
placeholder: "e.g. 'world' - /r/ needs work; 'through' - th sound"
label_requirement:
required: false
- annotation_type: radio
name: confidence
description: "How confident are you in your ratings?"
labels:
- Not confident
- Somewhat confident
- Very confident
training:
enabled: true
data_file: data/calibration_recordings.json
annotation_schemes: ["overall_score", "comprehensibility"]
passing_criteria:
min_correct: 4
allow_retry: true
phases:
order: [training, annotation]
training:
type: training
file: data/calibration_recordings.json
output_annotation_dir: annotation_output/
export_annotation_format: jsonl
user_config:
allow_all_users: true출력 형식
json
{
"overall_score": "6",
"comprehensibility": "7",
"accentedness": "5",
"vowels": "4",
"consonants": "3",
"word_stress": "4",
"sentence_intonation": "3",
"fluency": "4",
"common_errors": ["Th-sounds (think, this)", "R-sounds"],
"feedback": "'weather' - th sound; 'really' - r sound",
"confidence": "Very confident"
}발음 평가를 위한 팁
시작하기 전에 몇 개의 샘플 녹음을 그룹으로 함께 평가하여 모두가 같은 기준에 맞춰 보정되도록 하십시오. 평가를 고정하기 위해 참조 녹음을 가까이에 두십시오. 최소 두 번 들으십시오. 한 번은 전반적인 인상을 위해, 다시 한 번은 세부 사항을 위해서입니다. 좋은 헤드폰을 사용하십시오. 휴대폰 스피커는 손해를 봅니다. 그리고 음성학 배경 지식이 있는 평가자는 이를 더 빨리 익힙니다.
다음 단계
전체 오디오 문서는 오디오 주석에 있습니다.