Демонстрация возможностей системы

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Демонстрация возможностей системы

Сообщение alekszander » Чт ноя 16, 2017 2:41 pm

OlegM писал(а):
skysilver писал(а):
OlegM писал(а):В тот-же файл tts.class.php с google_tts и yandex_tts добавил небольшую функцию в виде костыля
Нет больше файла /lib/tts.class.php в составе дистрибутива ядра. Этот момент я имел в виду выше.
У меня она осталась. Поэтому об этом и пишу. :D Модуль Yandex TTS не дает возможности произносить речь без текста в терминале. А в демонстрационном варианте текст в терминале не нужен.
В общем создал файл tts.class.php все страницы пополз весь дизайн. Все таки вопрос с подключением модуля YandexTTS в сценарии DemoSay остался открытым.
OlegM
Сообщения: 96
Зарегистрирован: Пт май 15, 2015 3:28 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: Демонстрация возможностей системы

Сообщение OlegM » Чт ноя 16, 2017 2:45 pm

alekszander писал(а):В общем создал файл tts.class.php все страницы пополз весь дизайн. Все таки вопрос с подключением модуля YandexTTS в сценарии DemoSay остался открытым.
А где Вы его создали? Тем более этот файл никак не влияет на дизайн.
Этот файл нужно создать в /var/www/lib
Последний раз редактировалось OlegM Чт ноя 16, 2017 2:56 pm, всего редактировалось 4 раза.
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Демонстрация возможностей системы

Сообщение alekszander » Чт ноя 16, 2017 2:53 pm

OlegM писал(а):
alekszander писал(а):В общем создал файл tts.class.php все страницы пополз весь дизайн. Все таки вопрос с подключением модуля YandexTTS в сценарии DemoSay остался открытым.
А где Вы его создали? Тем более этот файл никак не влияет на дизайн.
Этот файл нужно создать в /var/www/lib
Именно там он и создан. Ниже скрин с тем что случилось.
СпойлерПоказать
52A6F22E-C0F9-4CF6-8E6D-B00C38429517.jpeg
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Демонстрация возможностей системы

Сообщение skysilver » Чт ноя 16, 2017 2:56 pm

alekszander писал(а):Именно там он и создан. Ниже скрин с тем что случилось
Можно содержимое файла увидеть? Предчувствие у меня плохое на этот счет. ))
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
OlegM
Сообщения: 96
Зарегистрирован: Пт май 15, 2015 3:28 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: Демонстрация возможностей системы

Сообщение OlegM » Чт ноя 16, 2017 2:57 pm

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.
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Демонстрация возможностей системы

Сообщение alekszander » Чт ноя 16, 2017 2:58 pm

КодПоказать

Код: Выделить всё

/**
 * 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;
}  
Видимо надо отдыхать после рабочего дня. Что именно должно быть в файле?
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Демонстрация возможностей системы

Сообщение skysilver » Чт ноя 16, 2017 3:01 pm

alekszander писал(а):Видимо надо отдыхать после рабочего дня. Что именно должно быть в файле?
Ок. А <?php в самом начале есть?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
OlegM
Сообщения: 96
Зарегистрирован: Пт май 15, 2015 3:28 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: Демонстрация возможностей системы

Сообщение OlegM » Чт ноя 16, 2017 3:02 pm

Я вам не то дал

Код: Выделить всё

<?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

?>
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Демонстрация возможностей системы

Сообщение alekszander » Чт ноя 16, 2017 3:12 pm

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)
Причем если бы ключ не проходил бы, то файл бы не смог сгенерироваться. И в чем проблема не пойму. Может расковырять файл модуля и посмотреть как там файл формируется?

Сменил

Код: Выделить всё

system('/usr/bin/mplayer '.$yandex_file);  
на

Код: Выделить всё

playSound($yandex_file, 1); 

Ошибка исчезла, но в динамиках тишина, файл появляется.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Демонстрация возможностей системы

Сообщение skysilver » Чт ноя 16, 2017 3:35 pm

alekszander писал(а):Ошибка исчезла, но в динамиках тишина, файл появляется.
Какого размера файл? Попробуй его проиграть через плеер на компе или телефоне. Думаю, что он просто пустой.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить