Страница 4 из 6
Re: Демонстрация возможностей системы
Добавлено: Чт ноя 16, 2017 2:41 pm
alekszander
OlegM писал(а):skysilver писал(а):OlegM писал(а):В тот-же файл tts.class.php с google_tts и yandex_tts добавил небольшую функцию в виде костыля
Нет больше файла /lib/tts.class.php в составе дистрибутива ядра. Этот момент я имел в виду выше.
У меня она осталась. Поэтому об этом и пишу.

Модуль Yandex TTS не дает возможности произносить речь без текста в терминале. А в демонстрационном варианте текст в терминале не нужен.
В общем создал файл tts.class.php все страницы пополз весь дизайн. Все таки вопрос с подключением модуля YandexTTS в сценарии DemoSay остался открытым.
Re: Демонстрация возможностей системы
Добавлено: Чт ноя 16, 2017 2:45 pm
OlegM
alekszander писал(а):В общем создал файл tts.class.php все страницы пополз весь дизайн. Все таки вопрос с подключением модуля YandexTTS в сценарии DemoSay остался открытым.
А где Вы его создали? Тем более этот файл никак не влияет на дизайн.
Этот файл нужно создать в /var/www/lib
Re: Демонстрация возможностей системы
Добавлено: Чт ноя 16, 2017 2:53 pm
alekszander
OlegM писал(а):alekszander писал(а):В общем создал файл tts.class.php все страницы пополз весь дизайн. Все таки вопрос с подключением модуля YandexTTS в сценарии DemoSay остался открытым.
А где Вы его создали? Тем более этот файл никак не влияет на дизайн.
Этот файл нужно создать в /var/www/lib
Именно там он и создан. Ниже скрин с тем что случилось.
52A6F22E-C0F9-4CF6-8E6D-B00C38429517.jpeg
Re: Демонстрация возможностей системы
Добавлено: Чт ноя 16, 2017 2:56 pm
skysilver
alekszander писал(а):Именно там он и создан. Ниже скрин с тем что случилось
Можно содержимое файла увидеть? Предчувствие у меня плохое на этот счет. ))
Re: Демонстрация возможностей системы
Добавлено: Чт ноя 16, 2017 2:57 pm
OlegM
skysilver писал(а):alekszander писал(а):Именно там он и создан. Ниже скрин с тем что случилось
Можно содержимое файла увидеть? Предчувствие у меня плохое на этот счет. ))
Код: Выделить всё
<?php
function YandexTranslate($message, $lang = 'en-ru')
{
$yt_api_key = "Здесь сам ключ"; // Получить тут: https://tech.yandex.ru/keys/get/?service=trnsl
$message = urlencode($message);
$yt_link = "https://translate.yandex.net/api/v1.5/tr.json/translate?key=".$yt_api_key."&text=".$message."&lang=".$lang;
$result = file_get_contents($yt_link);
$result = json_decode($result, true);
$en_test = $result['text'][0];
return $en_test;
}
?>
На файл нужно поставить разрешение на выполнение (744) и Группа с Владельцем от имени apache.
Re: Демонстрация возможностей системы
Добавлено: Чт ноя 16, 2017 2:58 pm
alekszander
Код: Выделить всё
/**
* YandexTTS
* @param mixed $message Message
* @param mixed $lang Language (default 'ru-RU')
* @return int|string
*/
function YandexTTS($message, $lang = 'ru-RU')
{
$filename = md5($message) . '_ya.mp3';
$cachedVoiceDir = ROOT . 'cached/voice';
$cachedFileName = $cachedVoiceDir . '/' . $filename;
$base_url = 'https://tts.voicetech.yandex.net/generate?';
if (file_exists($cachedFileName))
{
@touch($cachedFileName);
return $cachedFileName;
}
$qs = http_build_query(array('format' => 'mp3', 'lang' => $lang, 'speaker' => 'omazh', 'key' => SETTINGS_YANDEX_TTS_KEY, 'text' => $message));
try
{
$contents = file_get_contents($base_url . $qs);
}
catch (Exception $e)
{
registerError('yandextts', get_class($e) . ', ' . $e->getMessage());
}
if (isset($contents))
{
CreateDir($cachedVoiceDir);
SaveFile($cachedFileName, $contents);
return $cachedFileName;
}
return 0;
}
Видимо надо отдыхать после рабочего дня. Что именно должно быть в файле?
Re: Демонстрация возможностей системы
Добавлено: Чт ноя 16, 2017 3:01 pm
skysilver
alekszander писал(а):Видимо надо отдыхать после рабочего дня. Что именно должно быть в файле?
Ок. А
<?php в самом начале есть?
Re: Демонстрация возможностей системы
Добавлено: Чт ноя 16, 2017 3:02 pm
OlegM
Я вам не то дал
Код: Выделить всё
<?php
function YandexTTS($message, $lang = 'ru-RU')
{
$filename = md5($message) . '_ya.mp3';
$cachedVoiceDir = ROOT . 'cached/voice';
$cachedFileName = $cachedVoiceDir . '/' . $filename;
$base_url = 'https://tts.voicetech.yandex.net/generate?';
if (file_exists($cachedFileName))
{
@touch($cachedFileName);
return $cachedFileName;
}
$qs = http_build_query(array('format' => 'mp3', 'lang' => $lang, 'speaker' => 'omazh', 'key' => SETTINGS_YANDEX_TTS_KEY, 'text' => $message));
try
{
$contents = file_get_contents($base_url . $qs);
}
catch (Exception $e)
{
registerError('yandextts', get_class($e) . ', ' . $e->getMessage());
}
if (isset($contents))
{
CreateDir($cachedVoiceDir);
SaveFile($cachedFileName, $contents);
return $cachedFileName;
}
return 0;
}
?>
Обязательно в начале и конце
<?php
?>
Re: Демонстрация возможностей системы
Добавлено: Чт ноя 16, 2017 3:12 pm
alekszander
skysilver писал(а):alekszander писал(а):Видимо надо отдыхать после рабочего дня. Что именно должно быть в файле?
Ок. А
<?php в самом начале есть?
Да прописано, все нормально. Но ошибка так и не исчесзла
Код: Выделить всё
Cannot find HOME directory. MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team Terminal type `unknown' is not defined. Playing /var/www/cached/voice/d41d8cd98f00b204e9800998ecf8427e_ya.mp3. Failed to recognize file format. Exiting... (End of file) Cannot find HOME directory. MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team Terminal type `unknown' is not defined. Playing /var/www/cached/voice/d41d8cd98f00b204e9800998ecf8427e_ya.mp3. Failed to recognize file format. Exiting... (End of file)
Очень сильно беспокоит эта ошибка
Код: Выделить всё
Terminal type `unknown' is not defined. Playing /var/www/cached/voice/d41d8cd98f00b204e9800998ecf8427e_ya.mp3. Failed to recognize file format. Exiting... (End of file)
Причем если бы ключ не проходил бы, то файл бы не смог сгенерироваться. И в чем проблема не пойму. Может расковырять файл модуля и посмотреть как там файл формируется?
Сменил
на
Ошибка исчезла, но в динамиках тишина, файл появляется.
Re: Демонстрация возможностей системы
Добавлено: Чт ноя 16, 2017 3:35 pm
skysilver
alekszander писал(а):Ошибка исчезла, но в динамиках тишина, файл появляется.
Какого размера файл? Попробуй его проиграть через плеер на компе или телефоне. Думаю, что он просто пустой.