이 페이지에서

QTextToSpeech Class

QTextToSpeech 클래스는 텍스트 음성 변환 엔진을 편리하게 사용할 수 있도록 해줍니다. 더 보기...

헤더: #include <QTextToSpeech>
CMake: find_package(Qt6 REQUIRED COMPONENTS TextToSpeech)
target_link_libraries(mytarget PRIVATE Qt6::TextToSpeech)
qmake: QT += texttospeech
상속: QObject

공개 유형

enum class BoundaryHint { Default, Immediate, Word, Sentence, Utterance }
flags Capabilities
(since 6.6) enum class Capability { None, Speak, PauseResume, WordByWordProgress, Synthesize }
enum class ErrorReason { NoError, Initialization, Configuration, Input, Playback }
enum State { Ready, Speaking, Synthesizing, Paused, Error }

속성

공개 함수

QTextToSpeech(QObject *parent = nullptr)
QTextToSpeech(const QString &engine, QObject *parent = nullptr)
(since 6.4) QTextToSpeech(const QString &engine, const QVariantMap &params, QObject *parent = nullptr)
virtual ~QTextToSpeech() override
QList<QLocale> availableLocales() const
QList<QVoice> availableVoices() const
QString engine() const
QTextToSpeech::Capabilities engineCapabilities() const
QTextToSpeech::ErrorReason errorReason() const
QString errorString() const
(since 6.6) QList<QVoice> findVoices(Args &&... args) const
QLocale locale() const
double pitch() const
double rate() const
(since 6.4) bool setEngine(const QString &engine, const QVariantMap &params = QVariantMap())
QTextToSpeech::State state() const
(since 6.6) void synthesize(const QString &text, Functor &&functor)
(since 6.6) void synthesize(const QString &text, const QObject *context, Functor &&functor)
QVoice voice() const
double volume() const

공개 슬롯

(since 6.6) qsizetype enqueue(const QString &utterance)
void pause(QTextToSpeech::BoundaryHint boundaryHint = QTextToSpeech::BoundaryHint::Default)
void resume()
void say(const QString &text)
void setLocale(const QLocale &locale)
void setPitch(double pitch)
void setRate(double rate)
void setVoice(const QVoice &voice)
void setVolume(double volume)
void stop(QTextToSpeech::BoundaryHint boundaryHint = QTextToSpeech::BoundaryHint::Default)

신호

(since 6.6) void aboutToSynthesize(qsizetype id)
void engineChanged(const QString &engine)
void errorOccurred(QTextToSpeech::ErrorReason reason, const QString &errorString)
void localeChanged(const QLocale &locale)
void pitchChanged(double pitch)
void rateChanged(double rate)
(since 6.6) void sayingWord(const QString &word, qsizetype id, qsizetype start, qsizetype length)
void stateChanged(QTextToSpeech::State state)
void voiceChanged(const QVoice &voice)
void volumeChanged(double volume)

정적 공용 멤버

QStringList availableEngines()

상세 설명

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

    connect(ui.speakButton, &QPushButton::clicked, m_speech, [this]{
        m_speech->say(ui.plainTextEdit->toPlainText());
    });
    connect(ui.stopButton, &QPushButton::clicked, m_speech, [this]{
        m_speech->stop();
    });
    connect(ui.pauseButton, &QPushButton::clicked, m_speech, [this]{
        m_speech->pause();
    });
    connect(ui.resumeButton, &QPushButton::clicked, m_speech, &QTextToSpeech::resume);

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

findVoices()를 사용하여 일치하는 음성 목록을 얻거나, availableVoices()를 사용하여 현재 로케일을 지원하는 음성 목록을 얻으십시오. 입력 텍스트의 언어와 원하는 음성 출력의 억양에 가장 잘 맞는 availableLocales() 중 하나를 사용하여 locale 속성을 변경하십시오. 이렇게 하면 대부분의 플랫폼에서 사용 가능한 음성 목록이 변경됩니다. 그런 다음 setVoice() 호출 시 사용 가능한 음성 중 하나를 사용하십시오.

모든 엔진이 모든 기능을 지원하는 것은 아닙니다. engineCapabilities() 함수를 사용하여 사용 가능한 기능을 확인하고, 그에 따라 클래스 사용 방법을 조정하십시오.

참고: 엔진이 지원하는로케일 및 음성은 대개 운영 체제 구성에 따라 달라집니다. 예를 들어, macOS에서는 최종 사용자가 시스템 환경설정의 ‘접근성’ 패널을 통해 음성을 설치할 수 있습니다.

멤버 유형 문서

enum class QTextToSpeech::BoundaryHint

말하기를 중단하고 잠시 멈춰야 할 시기를 설명합니다.

Constant값설명
QTextToSpeech::BoundaryHint::Default0엔진별 기본 동작을 사용합니다.
QTextToSpeech::BoundaryHint::Immediate1엔진은 재생을 즉시 중지해야 합니다.
QTextToSpeech::BoundaryHint::Word2현재 단어가 끝나면 음성 재생을 중지합니다.
QTextToSpeech::BoundaryHint::Sentence3현재 문장이 끝나면 음성 출력을 중지합니다.
QTextToSpeech::BoundaryHint::Utterance (since Qt 6.6)4현재 발화가 끝나면 음성 출력을 중지합니다. 발화란 say() 또는 enqueue() 호출에 사용되는 텍스트 블록을 말합니다.

참고: 이는 엔진에 대한 힌트일 뿐입니다. 현재 사용 중인 엔진이 모든 옵션을 지원하지 않을 수도 있습니다.

[since 6.6] enum class QTextToSpeech::Capability
flags QTextToSpeech::Capabilities

이 열거형은 텍스트 음성 변환 엔진의 기능을 설명합니다.

상수값설명
QTextToSpeech::Capability::None0엔진이 해당 기능을 하나도 구현하지 않습니다.
QTextToSpeech::Capability::Speak1 << 0엔진이 텍스트를 기반으로 오디오 출력을 재생할 수 있습니다.
QTextToSpeech::Capability::PauseResume1 << 1엔진은 오디오 출력을 일시 정지했다가 다시 재개할 수 있습니다.
QTextToSpeech::Capability::WordByWordProgress1 << 2엔진은 음성이 출력되는 각 단어에 대해 sayingWord() 신호를 발산합니다.
QTextToSpeech::Capability::Synthesize1 << 3이 엔진은 텍스트에서 PCM 오디오 데이터를 ` synthesize `할 수 있습니다.

이 열거형은 Qt 6.6에서 도입되었습니다.

Capabilities 유형은 QFlags<Capability>에 대한 typedef입니다. 이 유형은 Capability 값들의 OR 조합을 저장합니다.

engineCapabilities()도 참조하십시오 .

enum class QTextToSpeech::ErrorReason

이 열거형은 QTextToSpeech 엔진의 현재 오류(있는 경우)를 나타냅니다.

상수값설명
QTextToSpeech::ErrorReason::NoError0오류가 발생하지 않았습니다.
QTextToSpeech::ErrorReason::Initialization1드라이버가 없거나 운영 체제 요구 사항이 충족되지 않는 등의 이유로 백엔드를 초기화할 수 없습니다.
QTextToSpeech::ErrorReason::Configuration2지정된 백엔드 구성이 일관성이 없습니다(예: 잘못된 음성 이름이나 매개변수 때문).
QTextToSpeech::ErrorReason::Input3지정된 텍스트를 합성할 수 없습니다(예: 유효하지 않은 크기나 문자 때문).
QTextToSpeech::ErrorReason::Playback4오디오 재생에 실패했습니다(예: 오디오 장치 없음, 잘못된 형식 또는 오디오 스트리밍 중단).

errorReason()를 사용하여 현재 오류를 확인하고, errorString()를 사용하여 관련 오류 메시지를 확인하십시오.

errorOccurred()도 참조하십시오 .

enum QTextToSpeech::State

이 열거형은 텍스트 음성 변환 엔진의 현재 상태를 나타냅니다.

상수값설명
QTextToSpeech::Ready0합성기가 새로운 텍스트를 시작할 준비가 되어 있습니다. 이는 텍스트 낭독이 끝난 후의 상태이기도 합니다.
QTextToSpeech::Speaking1텍스트가 음성으로 출력되고 있습니다.
QTextToSpeech::Synthesizing4텍스트가 PCM 데이터로 합성되고 있습니다. synthesized() 신호는 데이터 청크 단위로 발신됩니다.
QTextToSpeech::Paused2합성이 일시 중지되었으며, ` resume()`를 통해 재개할 수 있습니다.
QTextToSpeech::Error3오류가 발생했습니다. 자세한 내용은 errorReason()을 통해 확인할 수 있습니다.

QTextToSpeech::ErrorReason, errorReason(), errorString()도 참조하십시오 .

속성 문서

[since 6.4] engine : QString

이 속성은 텍스트를 음성으로 합성하는 데 사용되는 엔진을 저장합니다.

엔진을 변경하면 진행 중인 음성 출력이 중단됩니다.

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

이 열거형은 Qt 6.4에서 도입되었습니다.

액세스 함수:

QString engine() const
bool setEngine(const QString &engine, const QVariantMap &params = QVariantMap())[see note below]

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

Notifier 신호:

void engineChanged(const QString &engine)

[read-only, since 6.6] engineCapabilities : Capabilities

이 속성은 현재 엔진에서 구현된 기능을 포함합니다.

이 열거형은 Qt 6.6에서 도입되었습니다.

액세스 함수:

QTextToSpeech::Capabilities engineCapabilities() const

Notifier 신호:

void engineChanged(const QString &engine)

engine도 참조하십시오 .

locale : QLocale

이 속성은 현재 사용 중인 로케일을 저장합니다.

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

일부 플랫폼에서는 로케일을 변경하면 available voices 목록이 업데이트되며, 새 로케일에서 현재 음성이 사용 불가능한 경우 새로운 음성이 설정됩니다.

액세스 함수:

QLocale locale() const
void setLocale(const QLocale &locale)

알림 신호:

void localeChanged(const QLocale &locale)

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

pitch : double

이 속성은 -1.0에서 1.0 사이의 음성 피치를 나타냅니다.

기본값인 0.0은 일반적인 음성 피치를 나타냅니다.

액세스 함수:

double pitch() const
void setPitch(double pitch)

알림 신호:

void pitchChanged(double pitch)

rate : double

이 속성은 -1.0에서 1.0 사이의 범위에서 현재 음성 속도를 나타냅니다.

기본값인 0.0은 정상적인 말하기 속도를 나타냅니다.

액세스 함수:

double rate() const
void setRate(double rate)

알림 신호:

void rateChanged(double rate)

[read-only] state : State

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

void MainWindow::stateChanged(QTextToSpeech::State state)
{
    switch (state) {
    case QTextToSpeech::Speaking:
        ui.statusbar->showMessage(tr("Speech started..."));
        break;
    case QTextToSpeech::Ready:
        ui.statusbar->showMessage(tr("Speech stopped..."), 2000);
        break;
    case QTextToSpeech::Paused:
        ui.statusbar->showMessage(tr("Speech paused..."));
        break;
    default:
        ui.statusbar->showMessage(tr("Speech error!"));
        break;
    }

    ui.pauseButton->setEnabled(state == QTextToSpeech::Speaking);
    ui.resumeButton->setEnabled(state == QTextToSpeech::Paused);
    ui.stopButton->setEnabled(state == QTextToSpeech::Speaking || state == QTextToSpeech::Paused);
}

say()를 사용하여 현재 voice 와 locale 를 바탕으로 텍스트 합성을 시작합니다.

접근 함수:

QTextToSpeech::State state() const

알림 신호:

void stateChanged(QTextToSpeech::State state)

voice : QVoice

이 속성은 음성 출력에 사용될 음성을 지정합니다.

음성은 해당 엔진에서 지원하는 voices available 중 하나여야 합니다.

일부 플랫폼에서는 음성을 설정하면 ‘ locale ’, ‘ pitch ’ 등과 같은 다른 음성 속성도 변경됩니다. 이러한 변경 사항은 신호 발신을 유발합니다.

액세스 함수:

QVoice voice() const
void setVoice(const QVoice &voice)

Notifier 신호:

void voiceChanged(const QVoice &voice)

findVoices()도 참조하십시오 .

volume : double

이 속성은 0.0에서 1.0 사이의 현재 볼륨 값을 저장합니다.

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

액세스 함수:

double volume() const
void setVolume(double volume)

알림 신호:

void volumeChanged(double volume)

멤버 함수 설명서

[explicit] QTextToSpeech::QTextToSpeech(QObject *parent = nullptr)

기본 엔진 플러그인을 사용하는 플러그인에서 텍스트 음성 변환 엔진을 불러오고, ` parent`의 자식 객체로 `QTextToSpeech` 객체를 생성합니다.

기본 엔진은 플랫폼에 따라 다릅니다.

엔진이 올바르게 초기화되면, 해당 엔진의 ` state `는 ` QTextToSpeech::Ready`로 변경됩니다. 이 작업은 비동기적으로 발생할 수 있습니다. 플러그인 로드에 실패하면 ` state `는 ` QTextToSpeech::Error`로 설정됩니다.

availableEngines()도 참조하십시오 .

[explicit] QTextToSpeech::QTextToSpeech(const QString &engine, QObject *parent = nullptr)

engine 매개변수와 일치하는 플러그인에서 텍스트 음성 변환 엔진을 불러오고, parent 의 자식 객체로 QTextToSpeech 객체를 생성합니다.

engine 가 비어 있으면 기본 엔진 플러그인이 사용됩니다. 기본 엔진은 플랫폼에 따라 다릅니다.

엔진이 올바르게 초기화되면, 해당 엔진의 state 는 QTextToSpeech::Ready 로 설정됩니다. 플러그인 로드에 실패하거나 엔진 초기화에 실패하면, 해당 엔진의 state 는 QTextToSpeech::Error 로 설정됩니다.

availableEngines()도 참조하십시오 .

[explicit, since 6.4] QTextToSpeech::QTextToSpeech(const QString &engine, const QVariantMap &params, QObject *parent = nullptr)

engine 매개변수와 일치하는 플러그인에서 텍스트 음성 변환 엔진을 불러오고, parent 의 자식 객체로 QTextToSpeech 객체를 생성하며, params 를 엔진에 전달합니다.

engine 가 비어 있으면 기본 엔진 플러그인이 사용됩니다. 기본 엔진은 플랫폼에 따라 다릅니다. params 에서 지원되는 키/값 쌍은 엔진에 따라 다릅니다. 자세한 내용은 엔진 설명서를 참조하십시오. 지원되지 않는 항목은 무시됩니다.

엔진이 올바르게 초기화되면, 해당 엔진의 ` state `는 ` QTextToSpeech::Ready`로 설정됩니다. 플러그인 로드에 실패하거나 엔진 초기화에 실패하면, 해당 엔진의 ` state `는 ` QTextToSpeech::Error`로 설정됩니다.

이 함수는 Qt 6.4에서 도입되었습니다.

availableEngines()도 참조하십시오 .

[override virtual noexcept] QTextToSpeech::~QTextToSpeech()

이 QTextToSpeech 객체를 삭제하여 모든 음성 출력을 중지합니다.

[signal, since 6.6] void QTextToSpeech::aboutToSynthesize(qsizetype id)

이 신호는 엔진이 id 에 대한 음성 오디오 합성을 시작하기 직전에 발생합니다. id 는 enqueue() 호출에서 반환되는 값입니다. 애플리케이션은 이 신호를 사용하여 voice 속성을 막판에 수정하거나, enqueue()을 통해 큐에 추가된 텍스트의 처리 과정을 추적할 수 있습니다.

이 함수는 Qt 6.6에서 도입되었습니다.

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

[static invokable] QStringList QTextToSpeech::availableEngines()

지원되는 텍스트 음성 변환 엔진 플러그인 목록을 가져옵니다.

참고: 이 함수는 메타 객체 시스템 및 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

engine도 참조하십시오 .

[invokable] QList<QLocale> QTextToSpeech::availableLocales() const

현재 활성화된 engine 에서 지원하는 로케일 목록을 반환합니다.

참고: 이 함수는 메타 객체 시스템 및 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

availableVoices() 및 findVoices()도 참조하십시오 .

[invokable] QList<QVoice> QTextToSpeech::availableVoices() const

현재 locale 에서 사용할 수 있는 음성 목록을 반환합니다.

참고: 로케일이 설정되지 않은경우 시스템 로케일이 사용됩니다.

참고: 이 함수는 메타 객체 시스템 및 QML을 통해 호출할 수 있습니다. ` Q_INVOKABLE`를 참조하십시오.

availableLocales() 및 findVoices()도 참조하십시오 .

[slot, since 6.6] qsizetype QTextToSpeech::enqueue(const QString &utterance)

utterance 를 낭독할 텍스트 대기열에 추가하고, 낭독을 시작합니다. 대기열 내 텍스트의 인덱스를 반환하며, 오류가 발생한 경우 -1을 반환합니다.

엔진의 ` state `가 현재 ` Ready`인 경우, ` utterance `가 즉시 낭독됩니다. 그렇지 않은 경우, 엔진은 현재 텍스트의 낭독을 마친 후 ` utterance `의 낭독을 시작합니다.

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

stop()를 호출하면 큐가 지워집니다. 텍스트 끝에서 엔진을 일시 정지시키려면 Utterance 경계 힌트를 사용하십시오.

이 함수는 Qt 6.6에서 도입되었습니다.

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

[signal] void QTextToSpeech::errorOccurred(QTextToSpeech::ErrorReason reason, const QString &errorString)

이 신호는 오류가 발생한 후 state 가 QTextToSpeech::Error 로 설정되었을 때 전송됩니다. reason 매개변수는 오류 유형을 지정하며, errorString 는 사람이 읽을 수 있는 오류 설명을 제공합니다.

QTextToSpeech::ErrorReason 는 등록된 메타타입이 아니므로, 큐에 등록된 연결의 경우 Q_DECLARE_METATYPE() 및 qRegisterMetaType()를 사용하여 등록해야 합니다.

errorReason(), errorString() 및 사용자 정의 Qt 유형 만들기도참조하십시오 .

[invokable] QTextToSpeech::ErrorReason QTextToSpeech::errorReason() const

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

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

state 및 errorOccurred()도 참조하십시오 .

[invokable] QString QTextToSpeech::errorString() const

현재 엔진 오류 메시지를 반환합니다.

참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

errorOccurred()도 참조하십시오 .

[since 6.6] template <typename... Args> QList<QVoice> QTextToSpeech::findVoices(Args &&... args) const

args 의 조건에 부합하는 음성 목록을 반환합니다.

args 의 인자들은 모든 조건에 부합하는 보이스 목록을 구성하기 위해 순서대로 처리됩니다. QString 유형의 인자는 보이스의 name 와 대조되며, QLocale 유형의 인자는 보이스의 locale 와 대조되는 식입니다. 원하는 보이스의 Language 또는 Territory 만 지정할 수도 있으며, 이름은 regular expression 와 대조될 수 있습니다.

이 함수는 기준 목록이 비어 있을 경우 모든 보이스를 반환합니다. 동일한 유형의 기준을 여러 개 지정할 수는 없으며, 이 경우 컴파일 시 오류가 발생합니다.

참고: ` args `에 현재 ` locale`가 포함되어있지 않은 경우 , 이 함수는 모든 음성 목록을 가져오기 위해 엔진의 로케일을 변경해야 할 수 있습니다. 이는 엔진에 따라 다르지만, 진행 중인 음성 합성에 영향을 미칠 수 있습니다. 따라서 ` state `가 ` Ready`가 아닌 이상 이 함수를 호출하지 않는 것이 좋습니다.

이 함수는 Qt 6.6에서 도입되었습니다.

availableVoices()도 참조하십시오 .

[slot] void QTextToSpeech::pause(QTextToSpeech::BoundaryHint boundaryHint = QTextToSpeech::BoundaryHint::Default)

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

boundaryHint 가 준수되는지는 engine 에 따라 달라집니다.

resume() 및 PauseResume도 참조하십시오 .

[slot] void QTextToSpeech::resume()

pause()이 호출된 후 음성 재생을 재개합니다.

참고: Android에서는 일시 중지된 음성 출력을 재개할 때 처음부터 다시 시작됩니다. 이는 기본 텍스트 음성 변환 엔진의 제한 사항입니다.

pause()도 참조하십시오 .

[slot] void QTextToSpeech::say(const QString &text)

text 의 발음을 시작합니다.

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

    connect(ui.speakButton, &QPushButton::clicked, m_speech, [this]{
        m_speech->say(ui.plainTextEdit->toPlainText());
    });

참고: 새로 합성된 텍스트를 읽기 시작하기 전에 진행 중인모든 낭독이 중지됩니다.

현재 상태는 state 속성을 통해 확인할 수 있으며, 낭독이 시작되면 Speaking 로 설정됩니다. 낭독이 완료되면 state 는 Ready 로 설정됩니다.

enqueue(), stop(), pause(), resume(), synthesize()도 참조하십시오 .

[signal, since 6.6] void QTextToSpeech::sayingWord(const QString &word, qsizetype id, qsizetype start, qsizetype length)

이 신호는 id 발화에서 start 및 length 로 지정한 텍스트 구간인 word 가 오디오 장치로 재생될 때 발생합니다.

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

이 함수는 Qt 6.6에서 도입되었습니다.

Capability 및 say()도 참조하십시오 .

[invokable, since 6.4] bool QTextToSpeech::setEngine(const QString &engine, const QVariantMap &params = QVariantMap())

이 ` QTextToSpeech ` 객체가 사용하는 엔진을 ` engine`로 설정하며, ` params `를 엔진 생성자에 전달합니다.

engine 가 성공적으로 설정되었는지 여부를 반환합니다.

params 에서 지원되는 키/값 쌍은 엔진에 따라 다릅니다. 자세한 내용은 엔진 문서를 참조하십시오. 지원되지 않는 항목은 무시됩니다.

참고: 이 함수는 메타 객체 시스템을 통해 또는 QML에서 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.

참고: 속성 ` engine`에 대한세터 함수입니다.

이 함수는 Qt 6.4에서 도입되었습니다.

engine()도 참조하십시오 .

[slot] void QTextToSpeech::stop(QTextToSpeech::BoundaryHint boundaryHint = QTextToSpeech::BoundaryHint::Default)

boundaryHint 에서 현재 판독을 중지하고, 대기 중인 텍스트 큐를 지웁니다.

읽기 작업을 다시 시작할 수 없습니다. ` boundaryHint `가 준수되는지 여부는 엔진에 따라 다릅니다.

say(), enqueue(), pause()도 참조하십시오 .

[since 6.6] template <typename Functor> void QTextToSpeech::synthesize(const QString &text, Functor &&functor)

[since 6.6] template <typename Functor> void QTextToSpeech::synthesize(const QString &text, const QObject *context, Functor &&functor)

text 를 원시 오디오 데이터로 합성합니다.

이 함수는 음성을 비동기적으로 원시 오디오 데이터로 합성합니다. 데이터가 준비되면 functor 는 functor(QAudioFormat format, QByteArray bytes) 형태로 호출되며, 이때 format 는 bytes 내 데이터의 format 를 설명합니다. 또는 functor(QAudioBuffer &buffer) 형태로 호출될 수도 있습니다.

state 속성은 합성이 시작될 때 Synthesizing 로 설정되며, 합성이 완료되면 Ready 로 설정됩니다. 합성 과정에서 functor 는 여러 번 호출될 수 있으며, 이때 format 의 값이 변경될 수도 있습니다.

functor 는 람다나 자유 함수와 같은 호출 가능한 객체일 수 있으며, 선택적으로 context 객체를 포함할 수 있습니다:

tts.synthesize("Hello world", [](const QAudioFormat &format, const QByteArray &bytes){
    // process data according to format
});

또는 ` context ` 객체의 멤버 함수일 수도 있습니다:

struct PCMProcessor : QObject
{
    void processData(const QAudioFormat &format, const QByteArray &bytes)
    {
        // process data according to format
    }
} processor;
tts.synthesize("Hello world", &processor, &PCMProcessor::processData);

context 가 소멸되면, functor 는 더 이상 호출되지 않습니다.

참고: 이 API를 사용하려면 엔진에 Synthesize 기능이 지원되어야 합니다.

이 함수들은 Qt 6.6에서 도입되었습니다.

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

© 2026 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.