Spec-Zone.ru › Hammerspoon

hs.speech

Этот модуль предоставляет доступ к компоненту синтеза речи OS X.

Функции и методы синтеза речи обеспечивают доступ к возможностям преобразования текста в речь OS X и облегчают генерацию звукового вывода как в активное аудиоустройство, так и в файл формата AIFF.

Обсуждение встраивания команд в текст, который необходимо произнести, можно найти по адресу https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/SpeechSynthesisProgrammingGuide/FineTuning/FineTuning.html#//apple_ref/doc/uid/TP40004365-CH5-SW6. Оно несколько устарело и специфично для голосов более старого стиля MacinTalk, но все еще содержит некоторую информацию, относящуюся и к более современным голосам высокого качества, в своем обсуждении встроенных команд.

Подмодули

  • hs.speech.listener

Обзор API

  • Функции - API-вызовы, предоставляемые непосредственно расширением
    • attributesForVoice
    • availableVoices
    • defaultVoice
    • isAnyApplicationSpeaking
  • Конструкторы - API-вызовы, которые возвращают объект, обычно тот, который предлагает API-методы
    • new
  • Методы - API-вызовы, которые могут быть выполнены только на объекте, возвращенном конструктором
    • continue
    • isPaused
    • isSpeaking
    • modulation
    • pause
    • phonemes
    • phoneticSymbols
    • pitch
    • rate
    • reset
    • setCallback
    • speak
    • speaking
    • speakToFile
    • stop
    • usesFeedbackWindow
    • voice
    • volume

Документация API

Функции

attributesForVoice
Подпись hs.speech.attributesForVoice(voice) -> table
Тип Функция
Описание

Возвращает таблицу, содержащую различные свойства, описывающие и определяющие указанный голос.

Параметры
  • voice - имя голоса, для которого необходимо найти атрибуты
Возвращает
  • таблица, содержащая пары ключ-значение, которые описывают указанный голос. Эти атрибуты могут включать (но не ограничиваются) информацию о распознанных символах, образце текста, поле и т. д.
Примечания
  • Все имена, обнаруженные до сих пор, следуют этому шаблону для своего полного имени: com.apple.speech.synthesis.voice.*name*. Вы можете указать этот суффикс или нет, как вам нравится, при указании имени голоса.
Источник extensions/speech/libspeech.m строка 249
availableVoices
Подпись hs.speech.availableVoices([full]) -> array
Тип Функция
Описание

Возвращает список установленных голосов для синтеза речи.

Параметры
  • full - необязательный булевый флаг, указывающий, следует ли возвращать полные внутренние имена или сокращенные версии. По умолчанию false.
Возвращает
  • массив доступных имен голосов.
Примечания
  • Все имена, обнаруженные до сих пор, следуют этому шаблону для своего полного имени: com.apple.speech.synthesis.voice.*name*. Этот префикс обычно подавляется, если вы не передаете true.
Источник extensions/speech/libspeech.m строка 219
defaultVoice
Подпись hs.speech.defaultVoice([full]) -> string
Тип Функция
Описание

Возвращает имя текущего выбранного голоса по умолчанию для пользователя. Этот голос выбран в Системных настройках для Диктовки и речи в качестве Системного голоса.

Параметры
  • full - необязательный булевый флаг, указывающий, следует ли возвращать полное внутреннее имя или сокращенную версию. По умолчанию false.
Возвращает
  • имя системного голоса.
Примечания
  • Все имена, обнаруженные до сих пор, следуют этому шаблону для своего полного имени: com.apple.speech.synthesis.voice.*name*. Этот префикс обычно подавляется, если вы не передаете true.
Источник extensions/speech/libspeech.m строка 270
isAnyApplicationSpeaking
Подпись hs.speech.isAnyApplicationSpeaking() -> boolean
Тип Функция
Описание

Возвращает значение, указывающее, использует ли система в настоящее время синтезатор речи в любом приложении для генерации речи.

Параметры
  • None
Возвращает
  • булевое значение, указывающее, генерирует ли в настоящее время какое-либо приложение речь с помощью синтезатора.
Примечания
  • См. также hs.speech:speaking.
Источник extensions/speech/libspeech.m строка 295

Конструкторы

new
Подпись hs.speech.new([voice]) -> synthesizerObject
Тип Конструктор
Описание

Создает новый объект синтеза речи для использования Hammerspoon.

Параметры
  • voice - необязательная строка, определяющая голос, который синтезатор должен использовать для генерации речи. По умолчанию - системный голос.
Возвращает
  • объект синтеза речи или nil, если система не смогла создать новый синтезатор.
Примечания
  • Все имена, обнаруженные до сих пор, следуют этому шаблону для своего полного имени: com.apple.speech.synthesis.voice.*name*. Вы можете указать этот суффикс или нет, как вам нравится, при указании имени голоса.
  • Вы можете изменить голос позже с помощью метода hs.speech:voice.
Источник extensions/speech/libspeech.m строка 315

Методы

continue
Подпись hs.speech:continue() -> synthesizerObject
Тип Метод
Описание

Возобновляет приостановленный синтезатор речи.

Параметры
  • None
Возвращает
  • объект синтезатора
Источник extensions/speech/libspeech.m строка 687
isPaused
Подпись hs.speech:isPaused() -> boolean | nil
Тип Метод
Описание

Возвращает значение, указывающее, приостановлен ли в настоящее время синтезатор.

Параметры
  • None
Возвращает
  • True или false, указывающие, приостановлен ли в настоящее время синтезатор. Если возникла ошибка, возвращает nil.
Примечания
  • Если при получении этого значения произошла ошибка, подробности будут записаны в системные журналы, которые можно просмотреть с помощью приложения «Консоль». Вы также можете записывать такие сообщения в консоль Hammerspoon, установив уровень протоколирования модуля как минимум в Информация (это можно сделать с помощью следующей или аналогичной команды: hs.speech.log.level = 3. См. hs.logger для получения дополнительной информации).
Источник extensions/speech/libspeech.m строка 777
isSpeaking
Подпись hs.speech:isSpeaking() -> boolean | nil
Тип Метод
Описание

Возвращает значение, указывающее, произносит ли в настоящее время синтезатор, либо в аудиоустройство, либо в файл.

Параметры
  • None
Возвращает
  • True или false, указывающие, произносит ли в настоящее время синтезатор речь. Если произошла ошибка, возвращает nil.
Примечания
  • Если при получении этого значения произошла ошибка, подробности будут записаны в системные журналы, которые можно просмотреть с помощью приложения «Консоль». Вы также можете записывать такие сообщения в консоль Hammerspoon, установив уровень протоколирования модуля как минимум в Информация (это можно сделать с помощью следующей или аналогичной команды: hs.speech.log.level = 3. См. hs.logger для получения дополнительной информации).
Источник extensions/speech/libspeech.m строка 743
END_OF_DOCUMENT_MARKER
модуляция
Подпись hs.speech:modulation([modulation]) -> synthesizerObject | modulation | nil
Тип Метод
Описание

Получает или устанавливает модуляцию тона для голоса синтезатора.

Параметры
  • modulation - необязательное число, указывающее модуляцию тона для синтезатора.
Возвращаемое значение
  • Если параметр не указан, возвращает текущее значение; в противном случае возвращает объект синтезатора. Возвращает nil, если произошла ошибка.
Примечания
  • Модуляция тона выражается как число с плавающей запятой в диапазоне от 0,000 до 127,000. Эти значения соответствуют значениям нот MIDI, где 60,000 соответствует средней ноте C на фортепианной шкале. Наиболее полезные тона речи находятся в диапазоне от 40,000 до 55,000. Значение модуляции тона 0,000 соответствует монотонному произношению, при котором вся речь генерируется на частоте, соответствующей тону речи. При значении тона речи 46,000, модуляция тона 2,000 означает, что самый широкий возможный диапазон тонов, соответствующих фактической частоте сгенерированного текста, будет составлять от 44,000 до 48,000.

  • Если при получении или установке этого значения произошла ошибка, подробности будут записаны в системный журнал, который можно просмотреть с помощью приложения Консоль. Вы также можете записывать такие сообщения в консоль Hammerspoon, установив уровень ведения журнала модуля как минимум на Информация (это можно сделать с помощью следующей или аналогичной команды: hs.speech.log.level = 3. См. hs.logger для получения дополнительной информации).

Источник extensions/speech/libspeech.m строка 890
пауза
Подпись hs.speech:pause([where]) -> synthesizerObject
Тип Метод
Описание

Приостанавливает вывод синтезатора речи.

Параметры
  • where - необязательная строка, указывающая, когда следует приостановить вывод аудио (по умолчанию "немедленно"). Строка может быть одной из следующих:
    • "немедленно" - приостанавливает вывод немедленно. Если в середине слова, при возобновлении речи, слово будет повторено.
    • "слово" - приостанавливает в конце текущего слова.
    • "предложение" - приостанавливает в конце текущего предложения.
Возвращаемое значение
  • объект синтезатора
Источник extensions/speech/libspeech.m строка 611
фонемы
Подпись hs.speech:phonemes(text) -> string
Тип Метод
Описание

Возвращает фонемы, которые будут произнесены, если текст будет синтезирован.

Параметры
  • text - текст, который нужно разбить на фонемы.
Возвращаемое значение
  • текст, преобразованный в серию фонем, которые синтезатор использует для данного текста, если он будет синтезирован.
Примечания
  • Этот метод возвращает только фонетческое представление текста, если выбран голос MacinTalk. Более современные голоса с высоким качеством не используют фонетческое представление, и если этот метод используется, будет возвращена пустая строка.
  • Вы можете изменить фонетческое представление и передать его в hs.speech:speak, если обнаружите, что стандартная интерпретация неверна. Вам необходимо установить режим ввода в фонетный, добавив в текст префикс "[[inpt PHON]]".
  • Конкретные фонетческие символы, распознаваемые данным голосом, можно запросить, изучив массив, возвращаемый hs.speech:phoneticSymbols, после установки соответствующего голоса.
Источник extensions/speech/libspeech.m строка 717
фонетические символы
Подпись hs.speech:phoneticSymbols() -> array | nil
Тип Метод
Описание

Возвращает массив фонетческих символов, распознаваемых синтезатором для текущего голоса.

Параметры
  • Ничего
Возвращаемое значение
  • Для голосов MacinTalk этот метод возвращает массив распознанных символов для текущего выбранного голоса. Для современных голосов с высоким качеством или если произошла ошибка, возвращает nil.
Примечания
  • Каждый элемент в массиве фонем, возвращаемых hs.speech:phonemes, или который вы должны использовать для этого звука при создании фонетной строки самостоятельно, содержит следующие ключи:

    • Символ - текстовое представление этой фонемы при возврате hs.speech:phonemes или которое вы должны использовать для этого звука при создании фонетной строки самостоятельно.
    • Код операции - числовой код операции, переданный в обработчик для сообщения "willSpeakPhoneme", соответствующего этой фонеме.
    • Пример - пример слова, которое содержит звук, который представляет фонема.
    • HiliteEnd - позиция символа в Примере, где звук этой фонемы начинается.
    • HiliteStart - позиция символа в Примере, где звук этой фонемы заканчивается.
  • Только более старые голоса стиля MacinTalk поддерживают фонетческий текст. Более современные голоса с высоким качеством не отображаются фонетически и вернут nil для этого метода.

  • Если при получении этого значения произошла ошибка, подробности будут записаны в системный журнал, который можно просмотреть с помощью приложения «Консоль». Вы также можете записывать такие сообщения в консоль Hammerspoon, установив уровень ведения журнала модуля как минимум на «Информация» (это можно сделать с помощью следующей или аналогичной команды: hs.speech.log.level = 3. См. hs.logger для получения дополнительной информации).

Источник extensions/speech/libspeech.m строка 811
тон
Подпись hs.speech:pitch([pitch]) -> synthesizerObject | pitch | nil
Тип Метод
Описание

Получает или устанавливает основной тон для голоса синтезатора.

Параметры
  • pitch - необязательное число, указывающее основной тон для синтезатора.
Возвращаемое значение
  • Если параметр не указан, возвращает текущее значение; в противном случае возвращает объект синтезатора. Возвращает nil, если произошла ошибка.
Примечания
  • Типичные частоты голоса варьируются от примерно 90 герц для низкого мужского голоса до, возможно, 300 герц для высокого голоса ребенка. Эти частоты соответствуют приблизительным значениям тона в диапазонах соответственно от 30,000 до 40,000 и от 55,000 до 65,000.

  • Если при получении или установке этого значения произошла ошибка, подробности будут записаны в системный журнал, который можно просмотреть с помощью приложения Консоль. Вы также можете записывать такие сообщения в консоль Hammerspoon, установив уровень ведения журнала модуля как минимум на Информация (это можно сделать с помощью следующей или аналогичной команды: hs.speech.log.level = 3. См. hs.logger для получения дополнительной информации).

Источник extensions/speech/libspeech.m строка 848
скорость
Подпись hs.speech:rate([rate]) -> synthesizerObject | rate
Тип Метод
Описание

Получает или устанавливает скорость речи синтезатора (слов в минуту).

Параметры
  • rate - необязательное число, указывающее скорость речи для синтезатора.
Возвращаемое значение
  • Если параметр не указан, возвращает текущее значение; в противном случае возвращает объект синтезатора.
Примечания
  • Диапазон поддерживаемых скоростей не определен в рамках фреймворка синтеза речи; но синтезатор может реагировать только на ограниченный диапазон скоростей речи. Средняя скорость человеческой речи составляет от 180,0 до 220,0 слов в минуту.
Источник extensions/speech/libspeech.m строка 420
сброс
Подпись hs.speech:reset() -> synthesizerObject | nil
Тип Метод
Описание

Сбросить синтезатор до его исходного состояния.

Параметры
  • Ничего
Возвращаемое значение
  • Возвращает объект синтезатора. Возвращает nil, если произошла ошибка.
Примечания
  • Этот метод сбросит синтезатор до его исходного состояния, включая тон, модуляцию, громкость, скорость и т. д.

  • Изменения вступают в силу немедленно, если их запросить, но не повлияют на текущий процесс синтеза.

  • Если при получении или установке этого значения произошла ошибка, подробности будут записаны в системный журнал, который можно просмотреть с помощью приложения «Консоль». Вы также можете записывать такие сообщения в консоль Hammerspoon, установив уровень ведения журнала модуля как минимум на «Информация» (это можно сделать с помощью следующей или аналогичной команды: hs.speech.log.level = 3. См. hs.logger для получения дополнительной информации).

Источник extensions/speech/libspeech.m строка 932
END_OF_DOCUMENT_MARKER
setCallback
Подпись hs.speech:setCallback(fn) -> synthesizerObject
Тип Метод
Описание

Устанавливает или удаляет функцию обратного вызова для синтезатора.

Параметры
  • fn - функция, которая устанавливается в качестве обратного вызова для этого синтезатора речи. Если предоставленное значение равно nil, любая существующая функция обратного вызова удаляется.
Возвращает
  • объект синтезатора
Примечания
  • Функция обратного вызова должна принимать от 3 до 5 аргументов и не должна возвращать ничего. Первые два аргумента всегда будут самим объектом синтезатора и строкой, указывающей действие, которое вызвало обратный вызов. Значение этой строки также определяет оставшиеся аргументы следующим образом:

    • "willSpeakWord" - Отправляется непосредственно перед тем, как синтезированное слово произносится через устройство вывода звука.

      • предоставляет 3 дополнительных аргумента: startIndex, endIndex и полный текст, который произносится.
      • startIndex и endIndex могут использоваться как string.sub(text, startIndex, endIndex) для получения конкретного произносимого слова.
    • "willSpeakPhoneme" - Отправляется непосредственно перед тем, как синтезированный фонема произносится через устройство вывода звука.

      • предоставляет 1 дополнительный аргумент: opcode произносимой фонемы.
      • это сообщение обратного вызова будет появляться только при использовании голосов Macintalk; современные голоса с более высоким качеством не основаны на фонетике и не будут генерировать это сообщение.
      • opcode может быть связан с конкретной фонемой, найдя его в таблице, возвращаемой hs.speech:phoneticSymbols.
    • "didEncounterError" - Отправляется, когда синтезатор речи обнаруживает ошибку в синтезируемом тексте.

      • предоставляет 3 дополнительных аргумента: индекс в исходном тексте, где произошла ошибка, произносимый текст и сообщение об ошибке.
      • Особое примечание: мне никогда не удавалось сгенерировать это сообщение обратного вызова, даже с некорректными встроенными последовательностями команд, поэтому... ищу валидацию кода или исправления. Отправьте сообщение об ошибке, если у вас есть предложения.
    • "didEncounterSync" - Отправляется, когда синтезатор речи обнаруживает встроенную команду синхронизации.

      • предоставляет 1 дополнительный аргумент: номер синхронизации, предоставленный в тексте.
      • Номер синхронизации может быть встроен в текст, который нужно произнести, включив [[sync #]] в текст, где вы хотите, чтобы произошёл обратный вызов. Номер ограничен 32 битами и может быть представлен в десятичной или шестнадцатеричной системе счисления (префикс 0x).
    • "didFinish" - Отправляется, когда синтезатор речи завершает произнесение через устройство вывода звука.

      • предоставляет 1 дополнительный аргумент: логический флаг, указывающий, завершил ли синтезатор работу успешно (true) или был остановлен преждевременно с hs.speech:stop (false).
Источник extensions/speech/libspeech.m строка 498
speak
Подпись hs.speech:speak(textToSpeak) -> synthesizerObject
Тип Метод
Описание

Начинает произнесение предоставленного текста через текущее аудиоустройство системы.

Параметры
  • textToSpeak - текст, который нужно произнести с помощью синтезатора.
Возвращает
  • объект синтезатора
Источник extensions/speech/libspeech.m строка 545
speaking
Подпись hs.speech:speaking() -> boolean
Тип Метод
Описание

Возвращает значение true или false, если синтезатор в данный момент генерирует речь.

Параметры
  • Нет
Возвращает
  • Логическое значение, указывающее, генерирует ли данный синтезатор речь в данный момент.
Примечания
  • См. также hs.speech.isAnyApplicationSpeaking.
Источник extensions/speech/libspeech.m строка 477
speakToFile
Подпись hs.speech:speakToFile(textToSpeak, destination) -> synthesizerObject
Тип Метод
Описание

Начинает произнесение предоставленного текста и сохраняет аудио в файл формата AIFF.

Параметры
  • textToSpeak - текст, который нужно произнести с помощью синтезатора.
  • destination - путь к файлу для создания и хранения данных аудио.
Возвращает
  • объект синтезатора
Источник extensions/speech/libspeech.m строка 575
stop
Подпись hs.speech:stop([where]) -> synthesizerObject
Тип Метод
Описание

Останавливает выход синтезатора речи.

Параметры
  • where - необязательная строка, указывающая, когда остановить вывод аудио (по умолчанию "immediate"). Строка может быть одной из следующих:
    • "immediate" - остановить вывод немедленно.
    • "word" - остановить в конце текущего слова.
    • "sentence" - остановить в конце текущего предложения.
Возвращает
  • объект синтезатора
Источник extensions/speech/libspeech.m строка 647
usesFeedbackWindow
Подпись hs.speech:usesFeedbackWindow([flag]) -> synthesizerObject | boolean
Тип Метод
Описание

Получает или устанавливает использование синтезатором окна обратной связи.

Параметры
  • flag - необязательное логическое значение, указывающее, должен ли синтезатор использовать окно обратной связи или нет. По умолчанию false.
Возвращает
  • Если параметр не указан, возвращает текущее значение; в противном случае возвращает объект синтезатора.
Примечания
  • Особое примечание: Я не уверен, где фактически происходит визуальная обратная связь — я не смог найти окно обратной связи для синтеза в 10.11; однако метод определен и не помечен как устаревший, поэтому я включаю его в модуль. Если у кого-то есть дополнительная информация, пожалуйста, создайте сообщение об ошибке, и документация будет обновлена.
Источник extensions/speech/libspeech.m строка 351
voice
Подпись hs.speech:voice([full] | [voice]) -> synthesizerObject | voice
Тип Метод
Описание

Получает или устанавливает активный голос для синтезатора.

Параметры
  • full - необязательный логический параметр, указывающий, хотите ли вы получить полное внутреннее имя голоса или сокращенную версию. По умолчанию false.
  • voice - необязательная строка, указывающая имя голоса, на который нужно переключить синтезатор.
Возвращает
  • Если параметр не указан (или параметр имеет логическое значение), возвращает текущее значение; в противном случае возвращает объект синтезатора или nil, если голос не удалось изменить по какой-либо причине.
Примечания
  • Все встреченные имена до сих пор следуют этому шаблону для своего полного имени: com.apple.speech.synthesis.voice.*name*. Вы можете указать этот суффикс или нет, как вам нравится, при указании имени голоса.
  • Голос нельзя изменить, когда синтезатор в настоящее время выдает выход.
  • Если вы измените голос, когда синтезатор приостановлен, текущий синтез будет прерван, и голос будет изменён.
Источник extensions/speech/libspeech.m строка 377
volume
Подпись hs.speech:volume([volume]) -> synthesizerObject | volume
Тип Метод
Описание

Получает или устанавливает громкость синтезатора.

Параметры
  • volume - необязательное число от 0,0 до 1,0, указывающее громкость синтезатора.
Возвращает
  • Если параметр не указан, возвращает текущее значение; в противном случае возвращает объект синтезатора.
Примечания
  • Единицы громкости находятся на шкале, линейной по отношению к амплитуде или напряжению. Удвоение воспринимаемой громкости соответствует удвоению громкости.
Источник extensions/speech/libspeech.m строка 446

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.speech.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API