Yandex TTS и Алиса на украинском

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Аватара пользователя
Ron
Сообщения: 480
Зарегистрирован: Пт окт 27, 2017 6:44 pm
Благодарил (а): 144 раза
Поблагодарили: 70 раз

Re: Yandex TTS и Алиса на украинском

Сообщение Ron » Вс ноя 04, 2018 8:53 pm

А вот код для action_admin.html с выбором 3-х языков - Рус, Укр и Лягушначий Енг

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

[#if VIEW_MODE="search_yandex_tts" || VIEW_MODE=""#]

[#if OK#]
   <div class="alert alert-success"><#LANG_DATA_SAVED#></div>
[#endif OK#]

 
<!-- table zwave_devices search -->
<div id='api_settings'>
<form action="?" method="post" enctype="multipart/form-data" name="frmEdit" class="form-horizontal">
<fieldset>
<div class="form-group">
 <label class="control-label"> Yandex API key: (*) </label>
 <div class="col-lg-6"><input type="text" class="form-control" name="access_key" value="[#ACCESS_KEY#]" class="input"></div>
</div>

<div class="form-group">
 <label class="control-label"> Выберите голос: </label>
 <div class="col-lg-6">
<select class="form-control" name="speaker">
 <optgroup label="Женские голоса">
    <option value="jane" [#if SPEAKER=="jane"#] selected[#endif#]>jane</option>
    <option value="oksana" [#if SPEAKER=="oksana"#] selected[#endif#]>oksana</option>
    <option value="alyss" [#if SPEAKER=="alyss"#] selected[#endif#]>alyss</option>
    <option value="omazh"[#if SPEAKER=="omazh"#] selected[#endif#]>omazh</option>
</optgroup>
 <optgroup label="Мужские голоса">
    <option value="zahar" [#if SPEAKER=="zahar"#] selected[#endif#]>zahar</option>
    <option value="ermil" [#if SPEAKER=="ermil"#] selected[#endif#]>ermil</option>
</optgroup>
   </select>


</div>
</div>


<div class="form-group">
 <label class="control-label">Эмоциональная окраска голоса: </label>
 <div class="col-lg-6">
<select class="form-control" name="emotion">
    <option value="good" [#if EMOTION=="good"#] selected[#endif#]>радостный, доброжелательный</option>
    <option value="evil" [#if EMOTION=="evil"#] selected[#endif#]>раздраженный</option>
    <option value="neutral" [#if EMOTION=="neutral"#] selected[#endif#]>нейтральный</option>
   </select>
</div>
</div>

<div class="form-group">
 <label class="control-label">Язык: </label>
 <div class="col-lg-6">
<select class="form-control" name="lang">
    <option value="ru-RU" [#if lang=="ru-RU"#] selected[#endif#]>Русский</option>
    <option value="uk-UK" [#if lang=="uk-UK"#] selected[#endif#]>Украинский</option>
    <option value="en-US" [#if lang=="en-US"#] selected[#endif#]>Английский</option>
   </select>
</div>
</div>

<div class="form-group">
 <label class="control-label"> <#LANG_VALUE#>: (*) </label>
 <div class="col-lg-6">
 <input type="radio" name="disabled" value="0"[#if DISABLED!="1"#] checked[#endif#]><#LANG_ON#>
 <input type="radio" name="disabled" value="1"[#if DISABLED=="1"#] checked[#endif#]><#LANG_OFF#>
 </div>
</div>

<div class="form-actions">
<button type="submit" name="subm" value="Submit" class="btn btn-primary"><#LANG_UPDATE#></button>
<input type="hidden" name="view_mode" value="update_settings">
<input type="hidden" name="mode" value="update">
</div>
</fieldset>
</form>
<div class="pull-left"><a href="?clean=1" class="btn btn-default">Clear cache</a></div>
</div>
 [#endif VIEW_MODE#]



Замени у себя код в action_admin.html по пути /var/www/html/templates/yandex_tts

Так будет нагляднее и понятнее что имею ввиду.
Сейчас еще посмотрю как там к чему привязывается и можно тыцать будет и пробовать :D
За это сообщение автора Ron поблагодарил:
mag999 (Вс ноя 04, 2018 11:14 pm)
Рейтинг: 1.16%
Аватара пользователя
Ron
Сообщения: 480
Зарегистрирован: Пт окт 27, 2017 6:44 pm
Благодарил (а): 144 раза
Поблагодарили: 70 раз

Re: Yandex TTS и Алиса на украинском

Сообщение Ron » Вс ноя 04, 2018 10:22 pm

mag999 писал(а):
Вс ноя 04, 2018 2:01 am
Всем привет, подскажите как заставить Алису (с модулем Yandex TTS) разговаривать на украинском языке? Дайте направление куда копать.
Алес, готово ;)

Вже мовит украинскою :)

В коннект отпишу и тут код дам.

Короче лезем по 2-м путям и вместо того что там есть (весь код там) грохаем в теле и меняем на то что тут положил).

Как всегда не забываем про кодировку UTF-8 !!!

Напоминаю, что при апдейте модуля из маркета все это слетит нахрен :lol: :lol: :lol:

1 путь - /var/www/html/templates/yandex_tts
Открываем в редакторе action_admin.html все грохаем и копи-пастом вставляем код

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

[#if VIEW_MODE="search_yandex_tts" || VIEW_MODE=""#]

[#if OK#]
   <div class="alert alert-success"><#LANG_DATA_SAVED#></div>
[#endif OK#]

 
<!-- table zwave_devices search -->
<div id='api_settings'>
<form action="?" method="post" enctype="multipart/form-data" name="frmEdit" class="form-horizontal">
<fieldset>
<div class="form-group">
 <label class="control-label"> Yandex API key: (*) </label>
 <div class="col-lg-6"><input type="text" class="form-control" name="access_key" value="[#ACCESS_KEY#]" class="input"></div>
</div>

<div class="form-group">
 <label class="control-label"> Выберите голос: </label>
 <div class="col-lg-6">
<select class="form-control" name="speaker">
 <optgroup label="Женские голоса">
    <option value="jane" [#if SPEAKER=="jane"#] selected[#endif#]>Джейн</option>
    <option value="oksana" [#if SPEAKER=="oksana"#] selected[#endif#]>Оксана</option>
    <option value="alyss" [#if SPEAKER=="alyss"#] selected[#endif#]>Алиса</option>
    <option value="omazh"[#if SPEAKER=="omazh"#] selected[#endif#]>Омаж</option>
</optgroup>
 <optgroup label="Мужские голоса">
    <option value="zahar" [#if SPEAKER=="zahar"#] selected[#endif#]>Захар</option>
    <option value="ermil" [#if SPEAKER=="ermil"#] selected[#endif#]>Ермил</option>
</optgroup>
   </select>
</div>
</div>
<div class="form-group">
 <label class="control-label">Эмоциональная окраска голоса: </label>
 <div class="col-lg-6">
<select class="form-control" name="emotion">
    <option value="good" [#if EMOTION=="good"#] selected[#endif#]>радостный, доброжелательный</option>
    <option value="evil" [#if EMOTION=="evil"#] selected[#endif#]>раздраженный</option>
    <option value="neutral" [#if EMOTION=="neutral"#] selected[#endif#]>нейтральный</option>
   </select>
</div>
</div>
<div class="form-group">
 <label class="control-label">Язык: </label>
 <div class="col-lg-6">
<select class="form-control" name="lang">
    <option value="ru-RU" [#if LANG=="ru-RU"#] selected[#endif#]>Русский</option>
    <option value="uk-UK" [#if LANG=="uk-UK"#] selected[#endif#]>Украинский</option>
    <option value="en-US" [#if LANG=="en-US"#] selected[#endif#]>Английский</option>
   </select>
</div>
</div>

<div class="form-group">
 <label class="control-label"> Модуль: </label>
 <div class="col-lg-6">
 <input type="radio" name="disabled" value="0"[#if DISABLED!="1"#] checked[#endif#]><#LANG_ON#>
 <input type="radio" name="disabled" value="1"[#if DISABLED=="1"#] checked[#endif#]><#LANG_OFF#>
 </div>
</div>

<div class="form-actions">
<button type="submit" name="subm" value="Submit" class="btn btn-primary"><#LANG_UPDATE#></button>
<input type="hidden" name="view_mode" value="update_settings">
<input type="hidden" name="mode" value="update">
</div>
</fieldset>
</form>
<div class="pull-left"><a href="?clean=1" class="btn btn-default">Clear cache</a></div>
</div>
 [#endif VIEW_MODE#]
2-й путь - /var/www/html/modules/yandex_tts
Открываем в редакторе yandex_tts.class.php все грохаем и копи-пастом вставляем код:

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

<?php
class yandex_tts extends module {
function yandex_tts() {
  $this->name="yandex_tts";
  $this->title="Yandex TTS";
  $this->module_category="<#LANG_SECTION_APPLICATIONS#>";
  $this->checkInstalled();
}
/**
* saveParams
*
* Saving module parameters
*
* @access public
*/
function saveParams($data=0) {
 $p=array();
 if (IsSet($this->id)) {
  $p["id"]=$this->id;
 }
 if (IsSet($this->view_mode)) {
  $p["view_mode"]=$this->view_mode;
 }
 if (IsSet($this->edit_mode)) {
  $p["edit_mode"]=$this->edit_mode;
 }
 if (IsSet($this->tab)) {
  $p["tab"]=$this->tab;
 }
 return parent::saveParams($p);
}
/**
* getParams
*
* Getting module parameters from query string
*
* @access public
*/
function getParams() {
  global $id;
  global $mode;
  global $view_mode;
  global $edit_mode;
  global $tab;
  if (isset($id)) {
   $this->id=$id;
  }
  if (isset($mode)) {
   $this->mode=$mode;
  }
  if (isset($view_mode)) {
   $this->view_mode=$view_mode;
  }
  if (isset($edit_mode)) {
   $this->edit_mode=$edit_mode;
  }
  if (isset($tab)) {
   $this->tab=$tab;
  }
}
/**
* Run
*
* Description
*
* @access public
*/
function run() {
 global $session;
  $out=array();
  if ($this->action=='admin') {
   $this->admin($out);
  } else {
   $this->usual($out);
  }
  if (IsSet($this->owner->action)) {
   $out['PARENT_ACTION']=$this->owner->action;
  }
  if (IsSet($this->owner->name)) {
   $out['PARENT_NAME']=$this->owner->name;
  }
  $out['VIEW_MODE']=$this->view_mode;
  $out['EDIT_MODE']=$this->edit_mode;
  $out['MODE']=$this->mode;
  $out['ACTION']=$this->action;
  $this->data=$out;
  $p=new parser(DIR_TEMPLATES.$this->name."/".$this->name.".html", $this->data, $this);
  $this->result=$p->result;
}
/**
* BackEnd
*
* Module backend
*
* @access public
*/
function admin(&$out) {
	$this->getConfig();
	$out['ACCESS_KEY'] = $this->config['ACCESS_KEY'];
	$out['SPEAKER'] = $this->config['SPEAKER'];
	$out['LANG'] = $this->config['LANG'];
	$out['EMOTION'] = $this->config['EMOTION'];
	$out['EMPHASIS'] = $this->config['EMPHASIS'];
	$out['DISABLED'] = $this->config['DISABLED'];
	switch($this->view_mode) {
		case 'update_settings':
			global $access_key;
			$this->config['ACCESS_KEY'] = $access_key;
			global $speaker;
			$this->config['SPEAKER'] = $speaker;
			global $lang;
			$this->config['LANG'] = $lang;
			global $emotion;
			$this->config['EMOTION'] = $emotion;
			global $emphasis;
			$this->config['EMPHASIS'] = $emphasis;
			global $disabled;
			$this->config['DISABLED'] = $disabled;
			$this->saveConfig();
			$this->redirect('?view_mode=ok');
			break;
		case 'clear_cache':
			array_map('unlink', glob(ROOT.'cms/cached/voice/*_yandex.mp3'));
			$this->redirect('?view_mode=ok');
			break;
		case 'add_emphasis':
			global $search_str, $replace_str, $case;
			if(!empty($search_str) && !empty($replace_str)) {
				if($query = SQLSelectOne("SELECT * FROM `yandex_tts_emphasis` WHERE `search_str` LIKE '".DBSafe($search_str)."'")) {
					$query['search_str'] = $search_str;
					$query['replace_str'] = $replace_str;
					$query['case'] = ($case=='1'?1:0);
					if(SQLUpdate('yandex_tts_emphasis', $query)) {
						$this->redirect('?view_mode=ok');
					} else {
						$this->redirect('?view_mode=err');
					}
				} else {
					$query = array();
					$query['search_str'] = $search_str;
					$query['replace_str'] = $replace_str;
					$query['case'] = ($case=='1'?1:0);
					if(SQLInsert('yandex_tts_emphasis', $query)) {
						$this->redirect('?view_mode=ok');
					} else {
						$this->redirect('?view_mode=err');
					}
				}
			} else {
				$this->redirect('?view_mode=err');
			}
			break;
		case 'delete_emphasis':
			global $id;
			if(SQLExec('DELETE FROM `yandex_tts_emphasis` WHERE `ID` = '.intval($id))) {
				$this->redirect('?view_mode=ok');
			} else {
				$this->redirect('?view_mode=err');
			}
			break;
		case 'emphasis_clear':
			if(SQLExec('TRUNCATE TABLE `yandex_tts_emphasis`')) {
				$this->redirect('?view_mode=ok');
			} else {
				$this->redirect('?view_mode=err');
			}
			break;
		case 'emphasis_import':
        	if($this->mode == 'update') {
				$error = FALSE;
            	global $file;
            	if(file_exists($file)) {
                	$tmp = LoadFile($file);
                	$lines = mb_split("\n", $tmp);
					foreach($lines as $line) {
						$line = mb_split(':', $line);
						$count = count($line);
						if($count == 2 || $count == 3) {
							$line[0] = str_replace('&#58;', ':', $line[0]);
							$line[1] = str_replace('&#58;', ':', $line[1]);
							$line[2] = ($count == 3?intval($line[2]):0);
							if($query = SQLSelectOne("SELECT * FROM `yandex_tts_emphasis` WHERE `search_str` LIKE '".DBSafe($line[0])."'")) {
								$query['search_str'] = $line[0];
								$query['replace_str'] = $line[1];
								$query['case'] = ($line[2]==1?1:0);
								SQLUpdate('yandex_tts_emphasis', $query);
							} else {
								$query = array();
								$query['search_str'] = $line[0];
								$query['replace_str'] = $line[1];
								$query['case'] = ($line[2]==1?1:0);
								SQLInsert('yandex_tts_emphasis', $query);
							}
						}
					}
					$this->redirect('?view_mode=ok');
				} else {
					$this->redirect('?view_mode=err');
				}
			}
			break;
		case 'emphasis_export':
			if($emphasis = SQLSelect('SELECT * FROM `yandex_tts_emphasis` ORDER BY `search_str`')) {
				$data = '';
				foreach($emphasis as $item) {
					$item['search_str'] = str_replace(':', '&#58;', $item['search_str']);
					$item['replace_str'] = str_replace(':', '&#58;', $item['replace_str']);
					$item['case'] = intval($item['case']);
					$data .= $item['search_str'].':'.$item['replace_str'].':'.$item['case'].PHP_EOL;
				}
				header('Content-Disposition: attachment; filename=yandex_tts_export_'.date('d-m-Y_H-i-s').'.dic');
				header('Content-Type: text/plain');
				die($data);
			} else {
				$this->redirect('?view_mode=err');
			}
			break;
		case 'ok':
			$out['OK'] = 1;
			break;
		case 'err':
			$out['ERR'] = 1;
			break;
	}
	// Show emphasis list
	$emphasis = SQLSelect('SELECT * FROM `yandex_tts_emphasis` ORDER BY `search_str`');
	foreach($emphasis as $item) {
		$out['EMPHASIS_LIST'][] = array(
			'ID'			=> $item['ID'],
			'search_str'	=> htmlspecialchars($item['search_str']),
			'replace_str'	=> htmlspecialchars($item['replace_str']),
			'case'			=> intval($item['case']),
		);
	}
}

/**
* FrontEnd
*
* Module frontend
*
* @access public
*/
function usual(&$out) {
 $this->admin($out);
}
 function processSubscription($event, &$details) {
  $this->getConfig();
  if ($event=='SAY' && !$this->config['DISABLED'] && !$details['ignoreVoice']) {
    $level=$details['level'];
    $message=$details['message'];
    
	if($this->config['EMPHASIS']) {
		$emphasis = SQLSelect('SELECT * FROM `yandex_tts_emphasis`');
		foreach($emphasis as $item) {
			if($item['case']) {
				$message = str_replace($item['search_str'], $item['replace_str'], $message);
			} else {
				$message = preg_replace_callback('/('.preg_quote($item['search_str'], '/').')/ui', function($match) use($item) {
					return $item['replace_str'];
				}, $message);
			}
		}
	}
	
    $accessKey=$this->config['ACCESS_KEY'];
	$speaker=$this->config['SPEAKER'];
	$emotion=$this->config['EMOTION'];
    $lang=$this->config['LANG'];
    
	if ($level >= (int)getGlobal('minMsgLevel') && $accessKey!='')
    {
        $filename       = md5($message) . '_yandex.mp3';
        $cachedVoiceDir = ROOT . 'cms/cached/voice';
        $cachedFileName = $cachedVoiceDir . '/' . $filename;

        $base_url       = 'https://tts.voicetech.yandex.net/generate?';        

        if (!file_exists($cachedFileName))
        {


           $qs = http_build_query(array('format' => 'mp3', 'lang' => $lang, 'speaker' => $speaker, emotion => $emotion, 'key' => $accessKey, '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);
           }
        } else {
         @touch($cachedFileName);
        }
        if (file_exists($cachedFileName)) {
          playSound($cachedFileName, 1, $level);
          $details['ignoreVoice']=1;
			processSubscriptions('SAY_CACHED_READY', array(
				'level' => $level,
				'tts_engine' => 'yandex',
				'message' => $message,
				'filename' => $cachedFileName,
				));
        }
    }
  }
 }
/**
* Install
*
* Module installation routine
*
* @access private
*/
 function install($data='') {
  subscribeToEvent($this->name, 'SAY', '', 10);
  parent::install();
 }
 
 function dbInstall($data) {
$data = <<<EOD
 yandex_tts_emphasis: ID int(10) unsigned NOT NULL auto_increment
 yandex_tts_emphasis: search_str text
 yandex_tts_emphasis: replace_str text
 yandex_tts_emphasis: case boolean NOT NULL DEFAULT FALSE
EOD;
  parent::dbInstall($data);
 }
 
 function uninstall() {
  SQLExec('DROP TABLE IF EXISTS `yandex_tts_emphasis`');
  parent::uninstall();
 }
 
// --------------------------------------------------------------------
}

Спрашиваем или пишем в чат, а отвечает голосом который явно укажем в настройках модуля.
СпойлерПоказать
Ya_TTS_ukrain.jpg
Ya_TTS_ukrain.jpg (98.46 КБ) 4166 просмотров
PS. Аплодисментов не нужно - цветы в машину и жмакаем на "спасибку" )))))
Последний раз редактировалось Ron Пн ноя 05, 2018 3:10 am, всего редактировалось 1 раз.
За это сообщение автора Ron поблагодарил:
mag999 (Вс ноя 04, 2018 11:14 pm)
Рейтинг: 1.16%
Аватара пользователя
Ron
Сообщения: 480
Зарегистрирован: Пт окт 27, 2017 6:44 pm
Благодарил (а): 144 раза
Поблагодарили: 70 раз

Re: Yandex TTS и Алиса на украинском

Сообщение Ron » Пн ноя 05, 2018 2:00 am

tarasfrompir1 писал(а):
Вс ноя 04, 2018 6:08 pm
так а по людски это делается примерно так

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

$lang = SETTINGS_SITE_LANGUAGE;
            if ($lang == 'ua') { 
                $lang = 'uk';
            }else if ($lang == 'ru') {
     	       $lang = 'ru';
            }else {
     	       $lang = 'en';
            }
К стати это и есть ошибка Сергея в модуле.
В описании Yandex SpeechKit Cloud API черным по белому написано как отстреливеть Get запрос
ru-RU
en-US
uk-UK
tr-TR
За это сообщение автора Ron поблагодарил:
Step40 (Пн ноя 05, 2018 5:02 am)
Рейтинг: 1.16%
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Yandex TTS и Алиса на украинском

Сообщение tarasfrompir » Пн ноя 05, 2018 7:55 am

Ron писал(а):
Пн ноя 05, 2018 2:00 am
tarasfrompir1 писал(а):
Вс ноя 04, 2018 6:08 pm
так а по людски это делается примерно так

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

$lang = SETTINGS_SITE_LANGUAGE;
            if ($lang == 'ua') { 
                $lang = 'uk';
            }else if ($lang == 'ru') {
     	       $lang = 'ru';
            }else {
     	       $lang = 'en';
            }
К стати это и есть ошибка Сергея в модуле.
В описании Yandex SpeechKit Cloud API черным по белому написано как отстреливеть Get запрос
ru-RU
en-US
uk-UK
tr-TR
я в яндекс ттс не заглядывал - не могу сказать... я приложил как пример - где то выдрав кусок кода
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Ron
Сообщения: 480
Зарегистрирован: Пт окт 27, 2017 6:44 pm
Благодарил (а): 144 раза
Поблагодарили: 70 раз

Re: Yandex TTS и Алиса на украинском

Сообщение Ron » Пн ноя 05, 2018 1:34 pm

tarasfrompir1 писал(а):
Пн ноя 05, 2018 7:55 am
где то выдрав кусок кода
Да оно понятно ). Я же без претензий. Сергей то же типа классики сделал переменную на языковой блок. А оно вон чего, нужно отстреливать еще глубже по классике :D
Просто ткнул носом на будущее как с яндекс ттс работать.
Все-таки Яндекс оооочень во многом уступает AWS (на вскидку - не распознает язык запроса, что бы сгенерить ответ, ну и кол-во языков. AWS уже больше 100 может сам по своей нейросети - переводчиком все сделать,а юсеру отдать чего он спросил).
Но 1 плюс есть жирный. Это голос Таньки Шутовой...
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Yandex TTS и Алиса на украинском

Сообщение tarasfrompir » Пн ноя 05, 2018 1:56 pm

Ron писал(а):
Пн ноя 05, 2018 1:34 pm
tarasfrompir1 писал(а):
Пн ноя 05, 2018 7:55 am
где то выдрав кусок кода
Да оно понятно ). Я же без претензий. Сергей то же типа классики сделал переменную на языковой блок. А оно вон чего, нужно отстреливать еще глубже по классике :D
Просто ткнул носом на будущее как с яндекс ттс работать.
Все-таки Яндекс оооочень во многом уступает AWS (на вскидку - не распознает язык запроса, что бы сгенерить ответ, ну и кол-во языков. AWS уже больше 100 может сам по своей нейросети - переводчиком все сделать,а юсеру отдать чего он спросил).
Но 1 плюс есть жирный. Это голос Таньки Шутовой...
по поводу ттс - надо делать офлайновый и уже на нейронке.. НО пока жаль что все наработки закрыты , а то что есть уж очень посредственно сделанные.... да и тяжеловаты они пока что - (на малинке-калинке сильно не запустиш) а жаль...
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Ron
Сообщения: 480
Зарегистрирован: Пт окт 27, 2017 6:44 pm
Благодарил (а): 144 раза
Поблагодарили: 70 раз

Re: Yandex TTS и Алиса на украинском

Сообщение Ron » Пн ноя 05, 2018 2:03 pm

Офлайнка норм работает, но сервис не фонтан.. Дофига обучать поведениям и моделям. Пока не канает ))
Ты лучше поспособствуй Сергея торкнуть под зад :lol: что бы посмотрел на API AWS.

Это точно будет бешеное продвижение МДМ. Все языки поддержит и будущие, которые вставят в МДМ. ;)
Аватара пользователя
Ron
Сообщения: 480
Зарегистрирован: Пт окт 27, 2017 6:44 pm
Благодарил (а): 144 раза
Поблагодарили: 70 раз

Re: Yandex TTS и Алиса на украинском

Сообщение Ron » Пн ноя 05, 2018 2:07 pm

tarasfrompir1 писал(а):
Пн ноя 05, 2018 1:56 pm
НО пока жаль что все наработки закрыты , а то что есть уж очень посредственно сделанные.... да и тяжеловаты они пока что - (на малинке-калинке сильно не запустиш) а жаль...
Ну у меня стоит, если заметил RHVoice (шустрый как 100 китайцев :lol: ) и Yandex TTS. Если Яндекс загнется, то сразу отрабатывает RHVoice. Страшилка конечно (голоса), но работает же ))
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Yandex TTS и Алиса на украинском

Сообщение tarasfrompir » Пн ноя 05, 2018 2:14 pm

Ron писал(а):
Пн ноя 05, 2018 2:07 pm
Ну у меня стоит, если заметил RHVoice (шустрый как 100 китайцев :lol: ) и Yandex TTS. Если Яндекс загнется, то сразу отрабатывает RHVoice. Страшилка конечно (голоса), но работает же ))
ну да такого можна наставить огого - я вообще сторонник мари ттс.
Но все это не сильно живое - хочется типа так - https://www.youtube.com/watch?v=K59KKnIbIaM живо и натурально (оно ведь живой человек говорит), ну хотя бы похоже на это....
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Ron
Сообщения: 480
Зарегистрирован: Пт окт 27, 2017 6:44 pm
Благодарил (а): 144 раза
Поблагодарили: 70 раз

Re: Yandex TTS и Алиса на украинском

Сообщение Ron » Пн ноя 05, 2018 2:22 pm

tarasfrompir1 писал(а):
Пн ноя 05, 2018 2:14 pm
Но все это не сильно живое - хочется типа так - https://www.youtube.com/watch?v=K59KKnIbIaM живо и натурально (оно ведь живой человек говорит), ну хотя бы похоже на это....
Линк не напутал? Ткнул туда, а там Россия 24 Live и живой Медвед трындит, обещая рай :lol: :lol: :lol: (аж передернуло).
Ответить