Python 中 Google Text-to-Speech API 的 Speed 和 Pitch 的有效值
Valid values of Speed and Pitch for Google Text-to-Speech API in Python
我正在尝试在 python/Django 中实现 Google 的文本转语音 api,但我无法为 Seed 和 Pict 设置正确的值:
根据我对 API 的 documentation 的理解,Speed 的值在 0.25 到 4.0[=29= 之间] 和 Pitch 在 -20 -to- 20 之间。但是当我在这些范围之间传递值时它 returns 一个错误,它说:
<ul class="errorlist"><li>pitch<ul class="errorlist"><li>Select a valid choice. -1.0 is not one of the available choices.</li></ul></li><li>speed<ul class="errorlist"><li>Select a valid choice. 0.5 is not one of the available choices.</li></ul></li></ul>
这是我的模型代码:
from django.db import models
from app.storage import OverwriteStorage
genders = (
('UNSPECIFIED', 'SSML_VOICE_GENDER_UNSPECIFIED'),
('MALE', 'MALE'),
('FEMALE', 'FEMALE'),
('NEUTRAL', 'NEUTRAL'),
)
voice_types = (
('nl-NL-Standard-A', 'nl-NL-Standard-A'),
('en-AU-Standard-A', 'en-AU-Standard-A'),
('en-AU-Standard-B', 'en-AU-Standard-B'),
('en-AU-Standard-C', 'en-AU-Standard-C'),
('en-AU-Standard-D', 'en-AU-Standard-D'),
('en-GB-Standard-A', 'en-GB-Standard-A'),
('en-GB-Standard-B', 'en-GB-Standard-B'),
('en-GB-Standard-C', 'en-GB-Standard-C'),
('en-GB-Standard-D', 'en-GB-Standard-D'),
('en-US-Wavenet-A', 'en-US-Wavenet-A'),
('en-US-Wavenet-B', 'en-US-Wavenet-B'),
('en-US-Wavenet-C', 'en-US-Wavenet-C'),
('en-US-Wavenet-D', 'en-US-Wavenet-D'),
('en-US-Wavenet-E', 'en-US-Wavenet-E'),
('en-US-Wavenet-F', 'en-US-Wavenet-F'),
('en-US-Standard-B', 'en-US-Standard-B'),
('en-US-Standard-C', 'en-US-Standard-C'),
('en-US-Standard-D', 'en-US-Standard-D'),
('en-US-Standard-E', 'en-US-Standard-E'),
('fr-FR-Standard-C', 'fr-FR-Standard-C'),
('fr-FR-Standard-D', 'fr-FR-Standard-D'),
('fr-CA-Standard-A', 'fr-CA-Standard-A'),
('fr-CA-Standard-B', 'fr-CA-Standard-B'),
('fr-CA-Standard-C', 'fr-CA-Standard-C'),
('fr-CA-Standard-D', 'fr-CA-Standard-D'),
('de-DE-Standard-A', 'de-DE-Standard-A'),
('de-DE-Standard-B', 'de-DE-Standard-B'),
('it-IT-Standard-A', 'it-IT-Standard-A'),
('ja-JP-Standard-A', 'ja-JP-Standard-A'),
('ko-KR-Standard-A', 'ko-KR-Standard-A'),
('pt-BR-Standard-A', 'pt-BR-Standard-A'),
('es-ES-Standard-A', 'es-ES-Standard-A'),
('sv-SE-Standard-A', 'sv-SE-Standard-A'),
('tr-TR-Standard-A', 'tr-TR-Standard-A'),
)
speed = (
('0.25', '0.25'),
('0.50', '0.50'),
('0.75', '0.75'),
('1', '1'),
('1.25', '1.25'),
('1.50', '1.50'),
('1.75', '1.55'),
('2', '2'),
('2.25', '2.25'),
('2.50', '2.50'),
('2.45', '2.75'),
('3', '3'),
('3.25', '3.25'),
('3.50', '3.50'),
('3.75', '3.75'),
('4', '4'),
)
pitch = (
('-20', '-20'),
('-19', '-19'),
('-18', '-18'),
('-17', '-17'),
('-16', '-16'),
('-15', '-15'),
('-14', '-14'),
('-13', '-13'),
('-12', '-12'),
('-11', '-11'),
('-10', '-10'),
('-09', '-09'),
('-08', '-08'),
('-07', '-07'),
('-06', '-06'),
('-05', '-05'),
('-04', '-04'),
('-03', '-03'),
('-02', '-02'),
('-01', '-01'),
('1', '1'),
('2', '2'),
('3', '3'),
('4', '4'),
('5', '5'),
('6', '6'),
('7', '7'),
('8', '8'),
('9', '9'),
('10', '10'),
('11', '11'),
('12', '12'),
('13', '13'),
('14', '14'),
('15', '15'),
('16', '16'),
('17', '17'),
('18', '18'),
('19', '19'),
('20', '20'),
)
class BaseModel(models.Model):
textFile = models.FileField(storage=OverwriteStorage(), upload_to='texts/', name='textFile')
gender = models.CharField(max_length=100, choices=genders, name='gender',)
pitch = models.FloatField(name='pitch', choices=pitch,)
speed = models.FloatField(name='speed', choices=speed,)
voice_type = models.CharField(max_length=100, choices=voice_types, name='voice_type', default='')
我是不是做错了什么?
请帮助我!
提前致谢!
值必须定义为浮点数(cloud-tts 中没有可用的双精度值)。此外,删除单引号,因为它们不是字符串,并删除前导零。然后它会为你工作。
我正在尝试在 python/Django 中实现 Google 的文本转语音 api,但我无法为 Seed 和 Pict 设置正确的值: 根据我对 API 的 documentation 的理解,Speed 的值在 0.25 到 4.0[=29= 之间] 和 Pitch 在 -20 -to- 20 之间。但是当我在这些范围之间传递值时它 returns 一个错误,它说:
<ul class="errorlist"><li>pitch<ul class="errorlist"><li>Select a valid choice. -1.0 is not one of the available choices.</li></ul></li><li>speed<ul class="errorlist"><li>Select a valid choice. 0.5 is not one of the available choices.</li></ul></li></ul>
这是我的模型代码:
from django.db import models
from app.storage import OverwriteStorage
genders = (
('UNSPECIFIED', 'SSML_VOICE_GENDER_UNSPECIFIED'),
('MALE', 'MALE'),
('FEMALE', 'FEMALE'),
('NEUTRAL', 'NEUTRAL'),
)
voice_types = (
('nl-NL-Standard-A', 'nl-NL-Standard-A'),
('en-AU-Standard-A', 'en-AU-Standard-A'),
('en-AU-Standard-B', 'en-AU-Standard-B'),
('en-AU-Standard-C', 'en-AU-Standard-C'),
('en-AU-Standard-D', 'en-AU-Standard-D'),
('en-GB-Standard-A', 'en-GB-Standard-A'),
('en-GB-Standard-B', 'en-GB-Standard-B'),
('en-GB-Standard-C', 'en-GB-Standard-C'),
('en-GB-Standard-D', 'en-GB-Standard-D'),
('en-US-Wavenet-A', 'en-US-Wavenet-A'),
('en-US-Wavenet-B', 'en-US-Wavenet-B'),
('en-US-Wavenet-C', 'en-US-Wavenet-C'),
('en-US-Wavenet-D', 'en-US-Wavenet-D'),
('en-US-Wavenet-E', 'en-US-Wavenet-E'),
('en-US-Wavenet-F', 'en-US-Wavenet-F'),
('en-US-Standard-B', 'en-US-Standard-B'),
('en-US-Standard-C', 'en-US-Standard-C'),
('en-US-Standard-D', 'en-US-Standard-D'),
('en-US-Standard-E', 'en-US-Standard-E'),
('fr-FR-Standard-C', 'fr-FR-Standard-C'),
('fr-FR-Standard-D', 'fr-FR-Standard-D'),
('fr-CA-Standard-A', 'fr-CA-Standard-A'),
('fr-CA-Standard-B', 'fr-CA-Standard-B'),
('fr-CA-Standard-C', 'fr-CA-Standard-C'),
('fr-CA-Standard-D', 'fr-CA-Standard-D'),
('de-DE-Standard-A', 'de-DE-Standard-A'),
('de-DE-Standard-B', 'de-DE-Standard-B'),
('it-IT-Standard-A', 'it-IT-Standard-A'),
('ja-JP-Standard-A', 'ja-JP-Standard-A'),
('ko-KR-Standard-A', 'ko-KR-Standard-A'),
('pt-BR-Standard-A', 'pt-BR-Standard-A'),
('es-ES-Standard-A', 'es-ES-Standard-A'),
('sv-SE-Standard-A', 'sv-SE-Standard-A'),
('tr-TR-Standard-A', 'tr-TR-Standard-A'),
)
speed = (
('0.25', '0.25'),
('0.50', '0.50'),
('0.75', '0.75'),
('1', '1'),
('1.25', '1.25'),
('1.50', '1.50'),
('1.75', '1.55'),
('2', '2'),
('2.25', '2.25'),
('2.50', '2.50'),
('2.45', '2.75'),
('3', '3'),
('3.25', '3.25'),
('3.50', '3.50'),
('3.75', '3.75'),
('4', '4'),
)
pitch = (
('-20', '-20'),
('-19', '-19'),
('-18', '-18'),
('-17', '-17'),
('-16', '-16'),
('-15', '-15'),
('-14', '-14'),
('-13', '-13'),
('-12', '-12'),
('-11', '-11'),
('-10', '-10'),
('-09', '-09'),
('-08', '-08'),
('-07', '-07'),
('-06', '-06'),
('-05', '-05'),
('-04', '-04'),
('-03', '-03'),
('-02', '-02'),
('-01', '-01'),
('1', '1'),
('2', '2'),
('3', '3'),
('4', '4'),
('5', '5'),
('6', '6'),
('7', '7'),
('8', '8'),
('9', '9'),
('10', '10'),
('11', '11'),
('12', '12'),
('13', '13'),
('14', '14'),
('15', '15'),
('16', '16'),
('17', '17'),
('18', '18'),
('19', '19'),
('20', '20'),
)
class BaseModel(models.Model):
textFile = models.FileField(storage=OverwriteStorage(), upload_to='texts/', name='textFile')
gender = models.CharField(max_length=100, choices=genders, name='gender',)
pitch = models.FloatField(name='pitch', choices=pitch,)
speed = models.FloatField(name='speed', choices=speed,)
voice_type = models.CharField(max_length=100, choices=voice_types, name='voice_type', default='')
我是不是做错了什么? 请帮助我!
提前致谢!
值必须定义为浮点数(cloud-tts 中没有可用的双精度值)。此外,删除单引号,因为它们不是字符串,并删除前导零。然后它会为你工作。