知道每个词在哪里的音频

字幕、配音、卡拉 OK 和会说话的虚拟形象,需要的都是同一样东西:每个词开始和结束的时刻。在泰语里,得到这个时刻比看上去更难。

泰语书写不留空格#

在英语里,词级时间戳几乎不费成本。空格已经标出了词在哪里,剩下的工作是把已知的边界和音频对齐,这谁都能做。

泰文把词一个挨一个写在一起,中间没有任何间隔。一句话就是一串连续的字符,一个词在哪里结束,要由读者根据这些词是什么来判断。只有先把这个判断做对,泰语的时间段才可能存在。

泰语里的一个词级时间段,证明文本已经被读懂。

这正是模型当初要解决的问题,在这里变成了一项您能听到的功能。

一段带时间信息的音频#

Nom Yen 使用 Paxa TTS Flash v2,开启了时间信息。词语随着说出依次亮起,依据的是请求随音频片段一同返回的时间段。

Nom Yen0:07

ยินดีต้อนรับสู่ Paxa Labs ค่ะ เสียงภาษาไทยที่สลับเป็น English ได้กลางประโยค อย่างเป็นธรรมชาติ

时间戳

三种请求方式#

合适的粒度就是您的播放器需要的那一种。粒度越粗越容易处理,而每种粒度的价格都相同。

无论哪种粒度,返回的音频都相同,时间段与音频在同一个响应里一起返回。

为已有的录音计时#

同样的问题也可以反过来看。一段泰语录音到手时完全没有文字,而字幕文件既需要词语,也需要每个词开始的秒数。转写稿上的词级时间段,是对词在哪里结束的同一种判断,只不过是在没有文字可读的情况下,从音频里做出的。

开启词级时间戳的语音转文字,返回覆盖完整泰语词的时间段。逐个字符为泰语计时的引擎,交回的时间段没法切成字幕条。转写稿和它的时间段在同一个响应里一起返回。

请求字幕文件,返回的就是写好的文件。字幕条在换人说话、句子结束和停顿处切开。换行落在词的边界上,在一种不留空格的文字里,这是按字符计数做不到的。SubRip 或 WebVTT 均可,行长由您设定,与转写稿在同一个响应里返回。

录音最长 60 分钟,泰语优先,其他语言按原话转写。词级时间戳和字幕文件都不影响收费。

阅读语音转文字页面

先按长度翻译,再按时间朗读#

把外国视频做成泰语字幕,通常是两项工作,分属两家服务商。两项都在这里,而且第二项读取的就是第一项写出的内容。

  1. 在长度限制内翻译这一行

    字幕框能容纳的字符数是固定的,而泰语译文很少和原文一样长。翻译接受每个片段的最大长度,把泰语压缩到合适的长度,同时不截断意思。

  2. 开启时间信息朗读

    这行泰语送去语音合成,同时请求时间戳。返回的是音频和时间段,在同一个响应里,彼此本来就一致。

  3. 根据时间段生成文件

    您的字幕或配音文件根据时间段写出。事后不需要任何对齐,因为时间信息和音频出自同一次处理。

单独做对齐,往往是字幕流程耗掉整晚的地方。这里没有什么需要对齐,时间信息和音频是一起生成的。

时间戳参考文档

常见问题#

时间段是事后对齐的,还是和音频一起生成的?

和音频一起生成。时间段和音频出自同一次处理,在同一个响应里返回。没有对齐步骤,两者之间也不会产生偏移。

流式请求时能拿到时间信息吗?

可以。开启时间信息的流式请求会返回按行分隔的事件,每个时间段只传输一次,跟随它所属的数据块。

粒度会影响价格吗?

不会。词级、句级和整段发言级的时间信息费用相同,无论选哪种,音频都一样。

混合泰语和英语的文本也能用吗?

可以,词级时间段的价值正体现在这里。泰语句子里的英文产品名是泰语词中间的一个词,也按一个词计时。每个请求的文本最长 5,000 个字符。

能从录音里拿到词级时间戳吗?

可以。语音转文字接收最长 60 分钟的录音,返回的转写稿里每个泰语词都带有起止秒数。这是同一种时间段对象,只是从音频中读出。

能用于会说话的虚拟形象吗?

可以。词级时间段正是嘴型要读取的信息。请求词级时间信息,用时间段的边界驱动口型,脸部动画和音频就共用同一个时钟。

免费积分,无需绑卡

登录后,免费积分足够生成一整卷字幕所需的带时间信息语音,调整行长时试完就丢的那些也包括在内。