首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从PyTTS的音频流编码mp3

从PyTTS的音频流编码mp3
EN

Stack Overflow用户
提问于 2010-02-04 19:14:39
回答 2查看 2K关注 0票数 1

我使用Python2.5在音频mp3文件中处理文本到语音的转换。

我使用pyTSS作为python文本到语音转换模块,来转换音频.wav文件中的文本(在pyTTS中不能直接以mp3格式编码)。然后,我使用lame命令行编码器将这些wav文件编码为mp3格式。

现在,问题是,我想插入一个特定的外部声音文件(如声音警告)或(如果可能的话,一个生成的警告声音)(特别是音频mp3文件的两个单词之间)。

问题包括:

1)我已经看到PyTTS可以将音频流保存在文件或内存流中。使用两个函数:

Tts.SpeakToWave(文件,文本)或tts.SpeakToMemory(文本)

利用tts.SpeakToMemory(文本)函数,并使用PyMedia,我已经能够直接保存mp3,但mp3文件(在重现时),听起来像唐老鸭!:-)这里有一段代码:

代码语言:javascript
复制
            params = {'id': acodec.getCodecID('mp3'), 'bitrate': 128000, 'sample_rate': 44100, 'ext': 'mp3', 'channels': 2}

            m = tts.SpeakToMemory(p.Text)
            soundBytes = m.GetData()

            enc = acodec.Encoder(params)

            frames = enc.encode(soundBytes)
            f = file("test.mp3", 'wb')
            for frame in frames:
                f.write(frame)
            f.close()

我不明白问题出在哪里?!?这种可能性(如果它可以正常工作),最好跳过wav文件转换步骤。

2)作为第二个问题,我需要将音频mp3文件(从文本到语音转换模块获得)与特定的警告声音连接起来。

显然,如果我能在将整个音频存储流编码到一个唯一的mp3文件中之前,将文本的音频存储流(在文本到语音模块之后)和警告声音的流连接起来,那就太好了。

我还看到tksnack库可以连接音频,但它们不能写入mp3文件。

我希望已经说清楚了。:-)

非常感谢你对我的问题的回答。

朱利奥

EN

回答 2

Stack Overflow用户

发布于 2010-02-04 19:43:43

我不认为PyTTS产生默认的PCM数据(即44100 Hz,立体声,16位)。您应该像这样检查格式:

代码语言:javascript
复制
memStream = tts.SpeakToMemory("some text")
format = memStream.Format.GetWaveFormatEx()

...and将它正确地交给acodec。因此,您可以使用属性format.Channelsformat.BitsPerSampleformat.SamplesPerSec

至于你的第二个问题,如果声音是相同的格式,你应该能够简单地将它们一个接一个地传递给enc.encode

票数 1
EN

Stack Overflow用户

发布于 2010-02-04 19:50:32

这里无法提供明确的答案,很抱歉。但也有一些尝试和错误:我会查看pymedia模块的文档说明,以检查是否有您可以设置的任何质量配置。

另一个要点是,与mp3或原始音频不同,你不能简单地连接mp3编码的音频:无论你得到什么解决方案,你都必须在声音未压缩(未编码)的时候连接/混合它们,然后生成mp3编码的音频。

此外,有时我们只是觉得把fiel记录到磁盘上并重新转换,而不是在“一步”中完成是很尴尬的-而实际上,即使我们自己没有指定一个文件,软件也会在幕后做到这一点。如果你在一个类Unix的系统上,你总是可以创建一个先进先出的特殊文件(使用mkfifo命令),并在一个单独的进程中发送你的.wav数据进行编码(使用lame):对于你的程序来说,它看起来像是在使用一个中间文件,但实际上你并不是这样做的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2199151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档