Как замедлить голоса с помощью аргумента withVoice: в классе FliteController?

Я использую класс OpenEars FliteController для преобразования текста в речь.

Я использую метод:

[self.fliteController say:@"Фраза, которую я хочу, чтобы мое приложение произносило вслух." с голосом:@"cmu_us_awb8k"];

Варианты аргументов, которые можно ввести после withVoice:, следующие:

cmu_us_awb8k
cmu_us_rms8k
cmu_us_slt8k
cmu_time_awb
cmu_us_awb
cmu_us_kal
cmu_us_kal16
cmu_us_rms
cmu_us_slt

Я попробовал все эти аргументы с помощью withVoice:

Однако мой клиент не доволен голосами. Он сказал мне, что все это быстро. Итак, мне нужен способ замедлить речь с помощью аргумента withVoice:. Как мне это сделать? Доступны ли какие-либо другие голосовые сообщения?


person Vipin    schedule 03.06.2011    source источник


Ответы (2)


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

Измените скорость, высоту и вариативность голоса, используя следующие свойства FliteController:

duration_stretch // Duration of speech
target_mean // Average pitch of speech
target_stddev // Variance

Например, прямо перед отправкой этого сообщения:

[self.fliteController say:@"Фраза, которую я хочу, чтобы мое приложение произносило вслух." withVoice:@"cmu_us_awb8k"];

Вы можете сделать следующие настройки для self.fliteController:

self.fliteController.duration_stretch = 1.5; // Slow down the speed a bit
self.fliteController.target_mean = 1.2; // Raise the pitch
self.fliteController.target_stddev = 1.5; // Increase the variance

1.0 — значение по умолчанию, 0.0 — минимальное значение, а 2.0 — вероятное максимальное полезное значение (хотя вы можете подняться выше 2.0, вероятно, это не будет полезным значением).

Длительность_растяжения 0,5 будет в два раза быстрее, чем 1,0, а длительность 2,0 будет вдвое меньше скорости 1,0. Значение target_mean или target_stddev, равное 2,0, удвоит среднюю частоту основного тона или удвоит дисперсию, а значение 0,5 уменьшит их вдвое.

Вам не нужно устанавливать или переопределять эти настройки — если вы их не используете, для них будут установлены значения по умолчанию для голоса. Если вы хотите вернуть их к значениям по умолчанию после их переопределения, просто установите для них все значение 1.0:

self.fliteController.duration_stretch = 1.0; // Reset the speed
self.fliteController.target_mean = 1.0; // Reset the pitch
self.fliteController.target_stddev = 1.0; // Reset the variance
person Halle    schedule 23.06.2011

Я считаю, что это с OpenEars. Не знаю, как настроить это в OpenEars. Но вы можете посмотреть эту демонстрацию, которую можно настроить в соответствии с вашими требованиями. Например, вы можете установить Pitch/Variance/Speed ​​​​для голосов. Клонируйте репозиторий по ссылке.

Если вы можете перейти на это, это будет вашим решением. Если у вас есть какие-либо сомнения по поводу этой демонстрации, я, безусловно, могу помочь, так как я подготовил 1 демонстрацию с параметрами воспроизведения/паузы/остановки для TextToSpeech.

Надеюсь, поможет.

person Janak Nirmal    schedule 03.06.2011