电话语音机器人如何正确朗读国际号码?
Posted: Mon May 26, 2025 5:58 am
电话语音机器人(Text-to-Speech, TTS)在朗读国际电话号码时,需要遵循特定的规则和最佳实践,以确保号码被清晰、准确、自然地传达给听者。错误或不自然的朗读方式会导致沟通障碍,甚至误导客户。
1. 逐位朗读数字 (Digit-by-Digit Pronunciation)
这是朗读电话号码最基本也是最通用的规则。无论国家或地区,电话号码通常都是逐位朗读,而不是作为大数字来朗读。
正确示例: 对于号码 +8801712345678 (孟加拉国号码):
应朗读为:“加八八零,一七一,二三四五六七八” (Jia Ba Ba Ling, Yi Qi Yi, Er San Si Wu Liu Qi Ba)。
而不是:“八百八十亿七千一百二十三万四千五百六十七万八” (Ba Bai Ba Shi Yi Qi Qian Yi Bai Er Shi San Wan Si Qian Wu Bai Liu Shi Qi Wan Ba)。
2. 国家代码与本地号码分离
在朗读国际号码时,清晰地分隔国家代码和本地号码至关重要。
国际前缀“+”的朗读: 大多数TTS系统在遇到“+”号时,会将其朗读为“加号”(plus)或直接忽略(如果语境清晰)。明确朗读“加号”有助于听者识别这是一个国际号码。
国家代码的朗读: 国家代码应作为一个独立的数字组朗读,通常在本地号码之前。
示例: +880 1712345678 应朗读为 “加 八八零,一七一二三四五六七八”。
3. 本地号码的分组朗读
虽然逐位朗读是基本原则,但为了提高可听 电话营销数据 性和记忆性,许多国家/地区的电话号码会按照本地习惯进行分组朗读。
基于E.123显示格式: E.123标准建议的国际号码显示格式(如 +CC NDC SN,其中CC是国家代码,NDC是国家目的地代码/区号,SN是用户号码)可以作为朗读分组的依据。
国家/地区特定规则: TTS系统应内置或能够动态获取各国的号码分组规则。例如:
孟加拉国手机号码 (01X-XXXX-XXXX): 01712345678 可能会被朗读为 零一七一,二三四,五六七八 (Ling Yi Qi Yi, Er San Si, Wu Liu Qi Ba),或者 零一七一二三四五六七八。常见的做法是按照01X-YYYYYYYY或者01X-YYY-YYYY的形式进行分组。
美国号码 (NXX-NXX-XXXX): (212) 555-0100 通常朗读为 “二一二,五五五,零一零零” (two-one-two, five-five-five, oh-one-hundred/zero-one-zero-zero)。
英国号码 (0XX XXXX XXXX): 020 7123 4567 朗读为 “零二零,七一二三,四五六七”。
重复数字的朗读:
双重/三重: 在某些语言或地区,连续的相同数字可能会有特殊读法,如英语中的“double five”(55)或“triple eight”(888)。但为了国际通用性,通常建议逐位朗读,例如55朗读为“五五”,888朗读为“八八八”。
4. “零”的朗读 (0 as "oh" or "zero")
在英语国家,数字“0”在电话号码中常被朗读为“oh”(/oʊ/),而不是“zero”(/ˈzɪərəʊ/)。
程序化建议: 对于语音机器人,最好能根据目标语言或口音(如果支持)调整“0”的读法。在多语言环境中,统一朗读为“zero”可能是更安全的通用做法,因为它没有歧义。
5. TTS 引擎的选择和配置
支持SSML (Speech Synthesis Markup Language): 现代的TTS引擎通常支持SSML,允许开发者通过标记来控制语音输出的各个方面,包括:
<s> 标签: 用于在句子之间添加短暂停顿。可以在号码组之间插入短暂停顿。
<say-as> 标签: 明确指定如何解释文本。例如,<say-as interpret-as="telephone"> 或 <say-as interpret-as="characters"> 可以强制TTS引擎逐位朗读数字。
pitch、rate、volume: 调整朗读的语调、语速和音量,使其更自然。
多语言和多音色支持: 选择支持多种语言和口音的TTS引擎(如 Google Cloud Text-to-Speech, Amazon Polly, Microsoft Azure Text-to-Speech)。理想情况下,机器人能够根据呼叫方的语言偏好(如果已知)或目标国家/地区,选择合适的语言和口音进行朗读。
预录与TTS结合: 对于常用或关键的电话号码,可以考虑使用高质量的预录语音进行朗读,确保其准确性和自然度。对于动态生成的号码,则依赖TTS。
6. 数据标准化与准备
输入E.164格式: 将要朗读的电话号码首先标准化为E.164格式(如 +8801712345678)。
使用 libphonenumber 库: 在将号码传递给TTS引擎之前,可以使用 libphonenumber 库来:
解析号码: 获取国家代码、区号、本地号码等组成部分。
根据国家代码获取显示格式: libphonenumber 可以根据国家代码提供建议的国内或国际显示格式(E.123),这些格式通常已经包含合适的空格和分组,可以直接用于TTS的输入。
示例 (伪代码):
1. 逐位朗读数字 (Digit-by-Digit Pronunciation)
这是朗读电话号码最基本也是最通用的规则。无论国家或地区,电话号码通常都是逐位朗读,而不是作为大数字来朗读。
正确示例: 对于号码 +8801712345678 (孟加拉国号码):
应朗读为:“加八八零,一七一,二三四五六七八” (Jia Ba Ba Ling, Yi Qi Yi, Er San Si Wu Liu Qi Ba)。
而不是:“八百八十亿七千一百二十三万四千五百六十七万八” (Ba Bai Ba Shi Yi Qi Qian Yi Bai Er Shi San Wan Si Qian Wu Bai Liu Shi Qi Wan Ba)。
2. 国家代码与本地号码分离
在朗读国际号码时,清晰地分隔国家代码和本地号码至关重要。
国际前缀“+”的朗读: 大多数TTS系统在遇到“+”号时,会将其朗读为“加号”(plus)或直接忽略(如果语境清晰)。明确朗读“加号”有助于听者识别这是一个国际号码。
国家代码的朗读: 国家代码应作为一个独立的数字组朗读,通常在本地号码之前。
示例: +880 1712345678 应朗读为 “加 八八零,一七一二三四五六七八”。
3. 本地号码的分组朗读
虽然逐位朗读是基本原则,但为了提高可听 电话营销数据 性和记忆性,许多国家/地区的电话号码会按照本地习惯进行分组朗读。
基于E.123显示格式: E.123标准建议的国际号码显示格式(如 +CC NDC SN,其中CC是国家代码,NDC是国家目的地代码/区号,SN是用户号码)可以作为朗读分组的依据。
国家/地区特定规则: TTS系统应内置或能够动态获取各国的号码分组规则。例如:
孟加拉国手机号码 (01X-XXXX-XXXX): 01712345678 可能会被朗读为 零一七一,二三四,五六七八 (Ling Yi Qi Yi, Er San Si, Wu Liu Qi Ba),或者 零一七一二三四五六七八。常见的做法是按照01X-YYYYYYYY或者01X-YYY-YYYY的形式进行分组。
美国号码 (NXX-NXX-XXXX): (212) 555-0100 通常朗读为 “二一二,五五五,零一零零” (two-one-two, five-five-five, oh-one-hundred/zero-one-zero-zero)。
英国号码 (0XX XXXX XXXX): 020 7123 4567 朗读为 “零二零,七一二三,四五六七”。
重复数字的朗读:
双重/三重: 在某些语言或地区,连续的相同数字可能会有特殊读法,如英语中的“double five”(55)或“triple eight”(888)。但为了国际通用性,通常建议逐位朗读,例如55朗读为“五五”,888朗读为“八八八”。
4. “零”的朗读 (0 as "oh" or "zero")
在英语国家,数字“0”在电话号码中常被朗读为“oh”(/oʊ/),而不是“zero”(/ˈzɪərəʊ/)。
程序化建议: 对于语音机器人,最好能根据目标语言或口音(如果支持)调整“0”的读法。在多语言环境中,统一朗读为“zero”可能是更安全的通用做法,因为它没有歧义。
5. TTS 引擎的选择和配置
支持SSML (Speech Synthesis Markup Language): 现代的TTS引擎通常支持SSML,允许开发者通过标记来控制语音输出的各个方面,包括:
<s> 标签: 用于在句子之间添加短暂停顿。可以在号码组之间插入短暂停顿。
<say-as> 标签: 明确指定如何解释文本。例如,<say-as interpret-as="telephone"> 或 <say-as interpret-as="characters"> 可以强制TTS引擎逐位朗读数字。
pitch、rate、volume: 调整朗读的语调、语速和音量,使其更自然。
多语言和多音色支持: 选择支持多种语言和口音的TTS引擎(如 Google Cloud Text-to-Speech, Amazon Polly, Microsoft Azure Text-to-Speech)。理想情况下,机器人能够根据呼叫方的语言偏好(如果已知)或目标国家/地区,选择合适的语言和口音进行朗读。
预录与TTS结合: 对于常用或关键的电话号码,可以考虑使用高质量的预录语音进行朗读,确保其准确性和自然度。对于动态生成的号码,则依赖TTS。
6. 数据标准化与准备
输入E.164格式: 将要朗读的电话号码首先标准化为E.164格式(如 +8801712345678)。
使用 libphonenumber 库: 在将号码传递给TTS引擎之前,可以使用 libphonenumber 库来:
解析号码: 获取国家代码、区号、本地号码等组成部分。
根据国家代码获取显示格式: libphonenumber 可以根据国家代码提供建议的国内或国际显示格式(E.123),这些格式通常已经包含合适的空格和分组,可以直接用于TTS的输入。
示例 (伪代码):