使用 php laravel 文本到音频给出错误
Posted
技术标签:
【中文标题】使用 php laravel 文本到音频给出错误【英文标题】:Text to audio give error using php laravel 【发布时间】:2021-10-12 07:09:33 【问题描述】:当我给 $les 小字符串(如“你好,你好吗”)时,它工作正常,但当字符串长度很高(如 500 字)时,它会出错! 如果我给
$les = 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, hello hihoe hihh';
如果我只输入一个字母,它会正常工作,然后它会出错
感谢您的任何解决方案
$les = $lesson->full_text;
/* for text to audio */
$txt =htmlspecialchars($les);
$txt=rawurlencode($txt);
$audio = file_get_contents('https://translate.google.com/translate_tts?ie=UTF-8&client=gtx&q='.$txt.'&tl=es');
$speech="<audio controls='controls'><source src='data:audio/mpeg;base64,".base64_encode($audio)."'></audio>";
echo $speech; exit();
/* end text to audio */
【问题讨论】:
网址不应超过 2000 个字符。我认为当你使用 500 字时,它超过了限制。 是的!任何解决方案都可以解决这个问题 【参考方案1】:这是因为字符长度限制。
希望这个技巧有帮助:
public function index()
$max = 80;
$les = 'test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test';
if (strlen($les) < $max)
$txt[] = rawurlencode(htmlspecialchars($les));
else
$txt = chunk_split($les, $max);
$txt = explode("\r\n", $txt);
foreach ($txt as $t)
if (strlen($t) == 0) continue;
$t = rawurlencode(htmlspecialchars(trim($t)));
$audio = file_get_contents('https://translate.google.com/translate_tts?client=gtx&q='.$t.'&tl=en-US');
echo "<audio controls='controls'><source src='data:audio/mpeg;base64,".base64_encode($audio)."'></audio>";
在此之后,您可以通过加入音频或按顺序互相播放来实现您的目标。
【讨论】:
谢谢,现在我得到了 10audio。我怎样才能在一个音频中加入所有内容。任何建议 有多种方式如:***.com/q/65767933/8495783 我在实时模式下面临一个条纹问题.. 你能告诉我解决方案吗.. 实际上它在测试模式下工作正常,但在实时模式下点击按钮 3dsecure 弹出窗口在验证后打开关闭然后它不会进一步运行..即使不进入方法你也可以找到这个链接***.com/questions/71322782/…以上是关于使用 php laravel 文本到音频给出错误的主要内容,如果未能解决你的问题,请参考以下文章
Pphunit 不断给出错误:[1049] 未知数据库':内存:'
Laravel 重定向到一个路由,但是 apache 给出 404 错误