본문 바로가기
미디어위키

Extension Phonos

by 다움위키 2025. 1. 10.

원문 보기: https://dawoum.duckdns.org/wiki/Extension:Phonos

 

Original article: mw:Extension:Phonos

Phonos 확장은 2022년 커뮤니티 위시리스트 설문 조사에서 클릭 위시에서 재생되는 오디오 링크와 이후의 IPA 오디오 렌더러 위시를 구현하기 위한 커뮤니티 기술 프로젝트입니다.

IPA 오디오 렌더링과 텍스트 음성 변환 기능은 프로덕션에 출시된 적이 없고 불안정하고 지원되지 않는 것으로 고려되어야 합니다.

Installation

미디어위키 확장 내려받기 지면에서 해당 판을 내려받아서 정해진 위치로 이동시킵니다.

또는 개발자와 코드 기여자는 대신 다음을 사용하여 Git에서 확장 프로그램을 설치해야 합니다:

cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Phonos

직전의 Git에서 설치하는 경우에만, Composer를 사용하여, 확장 디렉토리에서 composer install --no-dev를 실행함으로써, PHP 종속성을 설치하십시오. (잠재적인 문제에 대해 task T173141을 참조하십시오.)

미디어위키 설정 LocalSettings.php 파일에 다음을 추가합니다:

wfLoadExtension( 'Phonos' );

만약 eSpeak 또는 Larnyx 엔진을 사용하면, 시스템에 Lame을 설치하고 $wgPhonosLame을 이에 따라 설정해야 합니다.

Special:Version에 접근해서 확장이 정상적으로 설치가 되었는지 확인하십시오.

Configuration parameters

$wgPhonosInlineAudioPlayerMode : IPA 렌더링을 비활성화하고 커먼즈(Commons)에서 기존 오디오만 재생하도록 허용합니다. $wgPhonosEngine : 어떤 엔진을 사용할 것이낙. espeak (기본값), larynx, or google 중 하나.

$wgPhonosApiEndpointLarynx : Larynx 엔진에 사용할 API 엔드포인트입니다.

$wgPhonosApiEndpointGoogle : Google 엔진에 사용할 API 엔드포인트입니다.

$wgPhonosApiKeyGoogle : Google 엔진에 대해 API 키.

$wgPhonosApiProxy : API 요청에 사용할 HTTP 프록시입니다. 설정하지 않으면 $wgHTTPProxy가 사용될 것입니다. $wgPhonosFileBackend : 캐싱에 사용할 파일 백엔드. FSFileBackend를 사용하는 사용자 지정 Phonos 백엔드로 기본 설정됩니다. $wgPhonosFileBackendDirectory : $wgPhonosFileBackend가 false이면 파일 캐싱에 사용할 디렉토리입니다. 기본값은 $wgUploadDirectory입니다.

$wgPhonosEspeak : eSpeak 실행 파일 경로. 기본값은 /usr/bin/espeak입니다.

$wgPhonosLame : WAV를 MP3로 변환하는 데 사용되는 Lame 실행 파일의 경로. 기본값은 /usr/bin/lame입니다.

$wgPhonosPath : Phonos 파일이 공개적으로 제공되는 상대 URL 경로입니다. 기본값은 "$wgUploadPath/$wgDBname-phonos"입니다.

$wgPhonosWikibaseUrl$wgArticlePath와 맨 마지막 슬래시를 포함한 Wikibase 설치의 URL입니다. $wgPhonosWikibaseProperties : 다음을 포함하는 대상:

  • wikibasePronunciationAudioProp: 발음 오디에 대한 속성.
  • wikibaseLangNameProp: 작업이나 이름에 대한 속성.
  • wikibaseIETFLangTagProp: IETF 언어 태그에 대한 속성.

$wgPhonosCommonsMediaUrl : 끝에 슬래시를 포함하는 공유 미디어 저장소의 Special:FilePath에 대한 URL.

Usage

모든 사용법 정보에 대해, 확장 도움말 페이지를 참조하십시오.

결과를 확인하기 위해, Linux 문서의 시작 부분에서 리눅스 발음에 대한 리누스의 음성 파일을 들을 수 있습니다.

Maintenance

Phonos는 고아가 된 파일을 자동으로 삭제하지 않습니다. 시간이 지남에 따라, 이들 파일은 쌓여서 불필요하게 파일 시스템의 공간을 차지할 수 있습니다. 이 문제를 해결하기 위해, Phonos는 두 가지 유지 관리 스크립트를 제공합니다:

countOrphanedFiles.php

이 스크립트는 고아 파일을 셀 것입니다. --delete 플래그를 전달하여 파일을 삭제할 수도 있습니다.

위키 농장에서, --wikis 플래그를 사용하여 처리할 위키를 지정하고 전역적 ID (데이터베이스 이름)를 전달할 수 있습니다. 만약 제공되지 않으면, 스크립트는 sites 테이블에 지정된 모든 위키를 반복하고, Phonos가 설치된 모든 위키를 처리합니다. 만약 sites 테이블이 채워지지 않으면, 스크립트는 현재 위키에서만 작동할 것입니다.

deleteOldPhonosFiles.php

이 스크립트는 --date 옵션으로 지정한 날짜 이전에 생성된 모든 Phonos 파일을 삭제합니다. 이것은 예를 들어 엔진을 변경하고, Phonos 파일의 강제 재생성을 원하면 유용합니다.

Adding a new TTS engine to Phonos

Phonos는 사용된 엔진에 무관하도록 설계되었습니다. TTS 엔진에 대한 유일한 요구 사항은 SSML을 허용한다는 것입니다.

Engine의 새 하위 클래스를 만들고 필요한 메서드를 구현합니다. Engine::getSupportedLanguages()는 기본적으로 null을 반환함에 주목하십시오. 언어 목록을 프로그래밍 방식으로 페치 (또는 하드 코드)할 수 있는 방법이 있다면 이 메서드는 새 하위 클래스에서 재정의되어야 합니다.

엔진이 MP3 형식으로 출력을 생성하지 않으면, Lame을 사용하여 파일을 MP3로 변환해야 하며, 이때 getAudioData()는 원시 MP3 데이터만 반환합니다. 해당 메서드는 Engine::persistAudio()를 사용하여 파일을 디스크에 영구적으로 저장하는 역할도 해야 합니다.

Metrics and instrumentation

이 섹션은 Phonos의 WMF 설치에만 적용됩니다.

다양한 메트릭은 statsv에 수집되어 저장되고 Phonos 처리 오류는 statsd에 저장됩니다:

클릭 및 재생 이벤트는 PhonosButton.prototype.track()에 의해 기록되며, 원하는 대로 더 많은 것을 추적하는 데 사용할 수 있습니다. 자세한 내용에 대해 phab:T315091을 참조하십시오.

백엔드에서, 처리 중에 PhonosException을 throw하는 모든 것은 캡처되어 위의 대시보드에 기록될 것입니다. 책임 페이지는 MediaWiki:Phonos-error-category 인터페이스 페이지에서 지정한 대로 "Pages with Phonos rendering errors" 카테고리에도 분류됩니다.