Как замедлить голоса, используя withVoice: аргумент в классе FliteController? - PullRequest
5 голосов
/ 03 июня 2011

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

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

[self.fliteController говорит: @ «Фраза, которую я хотел бы, чтобы мое приложение произносило вслух». withVoice : @ "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 :. Как мне это сделать? Есть ли другие доступные речевые голоса?

Ответы [ 2 ]

4 голосов
/ 23 июня 2011

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

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

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

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

[self.fliteController говорит: @ «Фраза, которую я бы хотел, чтобы мое приложение произносило вслух».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, оно, вероятно, не будет полезным значением).

Длительность_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
1 голос
/ 03 июня 2011

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

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

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

...