TextToSpeech QML Type

텍스트 음성 변환 유형은 텍스트 음성 변환 엔진에 대한 액세스를 제공합니다. 더 보기...

Import Statement: import QtTextToSpeech

속성

신호

방법

자세한 설명

기본 오디오 장치로 텍스트 읽기를 시작하려면 say()를 사용하고, 텍스트 읽기를 제어하려면 stop(), pause() 및 resume()를 사용합니다.

    TextToSpeech {
        id: tts
        volume: volumeSlider.value
        pitch: pitchSlider.value
        rate: rateSlider.value
    ...

        RowLayout {
            Button {
                text: qsTr("Speak")
                enabled: [TextToSpeech.Paused, TextToSpeech.Ready].includes(tts.state)
                onClicked: {
                    tts.say(input.text)
                }
            }
            Button {
                text: qsTr("Pause")
                enabled: tts.state == TextToSpeech.Speaking
                onClicked: tts.pause()
                visible: tts.engineCapabilities & TextToSpeech.Capabilities.PauseResume
            }
            Button {
                text: qsTr("Resume")
                enabled: tts.state == TextToSpeech.Paused
                onClicked: tts.resume()
                visible: tts.engineCapabilities & TextToSpeech.Capabilities.PauseResume
            }
    ...

추가 처리를 위해 텍스트를 PCM 데이터로 합성하려면 synthesize()를 사용합니다.

음성을 설정하려면 다음과 같이 VoiceSelector 첨부 속성을 사용합니다:

TextToSpeech {
    VoiceSelector.locale: Qt.locale("en_UK")
    VoiceSelector.gender: Voice.Male
}

지정된 모든 조건과 일치하는 첫 번째 음성이 사용됩니다. 모든 조건과 일치하는 음성이 없으면 음성이 변경되지 않습니다.

또는 findVoices()를 사용하여 일치하는 음성 목록을 가져오거나 availableVoices()를 사용하여 현재 로캘을 지원하는 음성 목록을 가져옵니다. 입력 텍스트의 언어와 원하는 음성 출력의 악센트에 잘 맞는 availableLocales() 중 하나를 사용하여 locale 속성을 변경합니다. 이렇게 하면 대부분의 플랫폼에서 사용 가능한 음성 목록이 변경됩니다. 그런 다음 voice 속성에서 사용 가능한 음성 중 하나를 사용합니다.

모든 엔진이 모든 기능을 지원하는 것은 아닙니다. engineCapabilities() 함수를 사용하여 사용 가능한 기능을 테스트하고 그에 따라 유형 사용량을 조정하세요.

참고: 엔진이 지원하는 로캘과 보이스는 일반적으로 운영 체제 구성에 따라 다릅니다. 예를 들어 macOS의 경우 최종 사용자는 시스템 환경설정의 접근성 패널을 통해 음성을 설치할 수 있습니다.

속성 문서

engine : string

텍스트를 음성으로 합성하는 데 사용되는 엔진입니다.

엔진을 변경하면 진행 중인 모든 음성이 중지됩니다.

대부분의 플랫폼에서 엔진을 변경하면 available localesavailable voices 의 목록이 업데이트됩니다.


engineCapabilities : enumeration [since 6.6]

이 프로퍼티는 현재 엔진이 구현한 기능을 보유합니다.

이 프로퍼티는 Qt 6.6에 도입되었습니다.

engineQTextToSpeech::Capability도 참조하십시오 .


engineParameters : map

이 프로퍼티는 엔진별 파라미터를 보유합니다.

engine도 참조하십시오 .


locale : locale

이 프로퍼티는 현재 사용 중인 로케일을 저장합니다.

기본적으로 시스템 로캘이 사용됩니다.

voice도 참조 하세요.


pitch : double

이 속성은 -1.0~1.0 범위의 음성 피치를 보유합니다.

기본값 0.0은 일반 음성 피치입니다.


rate : double

이 속성은 -1.0에서 1.0 범위의 현재 음성 속도를 유지합니다.

기본값 0.0은 정상적인 음성 흐름입니다.


state : enumeration

이 속성은 음성 합성기의 현재 상태를 유지합니다.

        onStateChanged: updateStateLabel(state)

        function updateStateLabel(state)
        {
            switch (state) {
                case TextToSpeech.Ready:
                    statusLabel.text = qsTr("Ready")
                    break
                case TextToSpeech.Speaking:
                    statusLabel.text = qsTr("Speaking")
                    break
                case TextToSpeech.Paused:
                    statusLabel.text = qsTr("Paused...")
                    break
                case TextToSpeech.Error:
                    statusLabel.text = qsTr("Error!")
                    break
            }
        }

QTextToSpeech::State, say(), stop() 및 pause()도 참조하세요 .


voice : Voice

이 속성은 음성에 사용될 음성을 보유합니다.

음성은 엔진의 voices available 중 하나이어야 합니다.

일부 플랫폼에서는 음성을 설정하면 locale, pitch 등과 같은 다른 음성 속성이 변경됩니다. 이러한 변경은 신호의 방출을 트리거합니다.


volume : double

이 속성은 0.0에서 1.0 범위의 현재 볼륨을 보유합니다.

기본값은 플랫폼의 기본 볼륨입니다.


신호 문서

[since 6.6] aboutToSynthesize(number id)

이 신호는 엔진이 id 에 대한 음성 오디오 합성을 시작하기 직전에 방출됩니다. 애플리케이션은 이 신호를 사용하여 voice 속성을 막판에 변경하거나 enqueue()를 통해 대기열에 추가된 텍스트의 프로세스를 추적할 수 있습니다.

참고: 해당 핸들러는 onAboutToSynthesize 입니다.

이 신호는 Qt 6.6에 도입되었습니다.

enqueue() 및 voice도 참조하십시오 .


void errorOccurred(enumeration reason, string errorString)

이 신호는 에러가 발생하고 stateTextToSpeech.Error 으로 설정된 후에 발생합니다. reason 매개변수는 에러 유형을 지정하고 errorString 은 사람이 읽을 수 있는 에러 설명을 제공합니다.

참고: 해당 핸들러는 onErrorOccurred 입니다.

state, errorReason() 및 errorString()도 참조하세요 .


[since 6.6] sayingWord(string word, int id, int start, int length)

이 신호는 id 발화에서 startlength 로 표시된 텍스트 조각인 word 이 오디오 장치에 재생될 때 방출됩니다.

참고: 이 신호를 사용하려면 엔진에 WordByWordProgress 기능이 있어야 합니다.

다음 코드는 TextArea input 에서 발화된 단어를 강조 표시합니다:

        onSayingWord: (word, id, start, length)=> {
            input.select(start, start + length)
        }

참고: 해당 핸들러는 onSayingWord 입니다.

이 신호는 Qt 6.6에 도입되었습니다.

QTextToSpeech::Capabilitysay()도 참조하십시오 .


메서드 문서

list<string> availableEngines()

지원되는 텍스트 음성 변환 엔진 플러그인 목록을 보유합니다.


list<Voice> availableLocales()

활성 engine 에서 지원되는 로케일 목록을 보유합니다.


list<Voice> availableVoices()

현재 locale 에 사용할 수 있는 음성 목록을 보유합니다.


[since 6.6] enqueue(string utterance)

말할 텍스트 대기열에 utterance 을 추가하고 말하기 시작합니다.

엔진의 state 가 현재 Ready 인 경우 utterance 가 즉시 발화됩니다. 그렇지 않으면 엔진은 현재 텍스트의 말하기를 마친 후 utterance 을 말하기 시작합니다.

엔진이 대기열의 다음 텍스트 항목으로 넘어갈 때마다 aboutToSynthesize() 신호가 전송됩니다. 이를 통해 애플리케이션은 진행 상황을 추적하고 음성 속성을 마지막 순간에 변경할 수 있습니다.

stop()를 호출하면 큐가 지워집니다.

이 메서드는 Qt 6.6에 도입되었습니다.

say(), stop() 및 aboutToSynthesize()도 참조하십시오 .


enumeration errorReason()

엔진이 오류를 보고한 이유를 반환합니다.

QTextToSpeech::ErrorReason참조하십시오 .


string errorString()

현재 엔진 에러 메시지를 반환합니다.


[since 6.6] list<voice> findVoices(map criteria)

지정된 모든 criteria 과 일치하는 음성 목록을 반환합니다.

criteria 는 음성 속성 이름에서 속성 값으로의 맵으로, 다음과 같은 검색 기준의 조합을 지원합니다:

let daniel = tts.findVoices({
    "name": "Daniel"
})
let maleEnglish = tts.findVoices({
    "gender": Voice.Male,
    "language": Qt.locale('en')
})

이 메서드는 Qt 6.6에 도입되었습니다.

VoiceSelector참조하세요 .


pause(BoundaryHint boundaryHint)

현재 음성을 boundaryHint 에서 일시 중지합니다.

boundaryHint 이 존중되는지 여부는 engine 에 따라 다릅니다.

resume(), QTextToSpeech::BoundaryHint, 및 PauseResume도 참조하십시오 .


resume()

pause()가 호출된 후 말하기를 재개합니다.

pause()도 참조하세요 .


say(string text)

text 의 합성을 시작합니다.

이 함수는 비동기적으로 음성 합성을 시작하고 텍스트를 기본 오디오 출력 장치로 읽습니다.

        RowLayout {
            Button {
                text: qsTr("Speak")
                enabled: [TextToSpeech.Paused, TextToSpeech.Ready].includes(tts.state)
                onClicked: {
                    tts.say(input.text)
                }
            }

참고: 진행 중인 모든 읽기는 최근에 합성된 텍스트를 읽기 시작하기 전에 중지됩니다.

현재 상태는 state 속성을 사용하여 확인할 수 있으며, 읽기가 시작되면 QTextToSpeech::Speaking 으로 설정됩니다. 읽기가 완료되면 stateQTextToSpeech::Ready 으로 설정됩니다.

stop(), pause() 및 resume()도 참조하세요 .


stop(BoundaryHint boundaryHint)

boundaryHint 에서 현재 읽기를 중지하고 보류 중인 텍스트의 대기열을 지웁니다.

읽기를 다시 시작할 수 없습니다. boundaryHint 이 존중되는지 여부는 엔진에 따라 다릅니다.

say(), enqueue(), pause() 및 QTextToSpeech::BoundaryHint도 참조하세요 .


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.